objective-c - NSView 中有多个 NSImage?

标签 objective-c macos cocoa

是否可以在单个NSView中绘制多个NSImages

到目前为止,在 NSView 子类中进行绘制的过程如下:

- (void)drawRect:(NSRect)dirtyRect
{
    [image drawInRect:NSMakeRect(0.0f, 0.0f, 100.0f, 100.0f) fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0f];
}

//to change the current image
- (void)newImage:(NSImage *)image_
{
     [image release];
     image = [image_ retain];
     [self setNeedsDisplay:YES];
}

但这只是为了绘制一张图像。有人可以帮忙吗? 谢谢。

最佳答案

您必须保留对需要绘制的图像的引用。

@interface MyView : NSView
{
    NSMutableArray* images;
}

然后,使用合适的 API 添加图像,例如:

@implementation MyView

- (void) addImage: (NSImage *) anImage
{
    [images addObject: anImage];
    [self setNeedsDisplay: YES];
}

drawRect:中,您可以迭代图像并绘制全部/部分图像。

关于objective-c - NSView 中有多个 NSImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9528048/

相关文章:

ios - 获取 CollectionViewContentSize

objective-c - 如何将对 FORTRAN 代码的调用添加到 Xcode 4.5 中的项目?

ios - 单个 SKSpriteNode 上的多重碰撞矩形

xcode - 如何在 mac 应用程序中使用自定义字体?

objective-c - 如何让 iTunes 跳到轨道的特定时间?操作系统X

iphone - iOS -- arc 下的 initWith 方法

python - 为什么 macOS Visual Studio Code 使用错误的 Python 解释器?

cocoa - 如何找到特定分布式对象方法调用的连接?

cocoa : Notification if unmount request fails?

objective-c - 突出显示已编辑的 NSBrowserCell 并在其 NSText 上绘制聚焦环?