我需要在NSTextView中调整NSImage的大小。我已经成功实现了它,但是当我尝试改变图片(我的NSImage)在NSTextView中的位置时,图片将恢复到其旧尺寸。有人可以帮助我吗?以下是我的代码:
- (void)textView:(NSTextView *)textView doubleClickedOnCell:(id <NSTextAttachmentCell>)cell inRect:(NSRect)cellFrame atIndex:(NSUInteger)charIndex {
NSImage * image = [(NSCell *)cell image];
NSSize imageSize = [image size];
self.resizeImageController.sizeBefore = imageSize;
self.resizeImageController.imageForResize = image;
self.resizeImageController.textViewWithImage = textView;
self.resizeImageController.textAttachmentCell = cell;
[[self.resizeImageController window]orderFront:self];
}
这是NSTextView方法的代理,并且我在resizeImageController的方法 - (void)resizeImage中调整了图像大小:
- (void)resizeImage {
NSSize newSize = ...;//Get new image size - the dimensions are correct, the error is not exactly here
[self.imageForResize setSize:newSize];
NSImage *newImage = [[[NSImage alloc] initWithSize:newSize] autorelease];
NSBitmapImageRep *rep = [[[NSBitmapImageRep alloc]
initWithData:[self.imageForResize TIFFRepresentation]] autorelease];
[rep setSize:newSize];
[newImage addRepresentation:rep];
[self.textAttachmentCell setImage:newImage];
self.imageForResize = newImage;
[[self.textViewWithImage layoutManager] textContainerChangedGeometry: [self.textViewWithImage textContainer]];
}