可可 - 在NSView中绘制图像

时间:2012-10-22 17:02:17

标签: objective-c cocoa nsview nsimage

我很难理解为什么下面的代码不起作用,我想要实现的是在NSView的左上角显示的图像,但没有显示...

NSImage *map0 = [NSImage imageNamed:@"map0.png"];
NSRect rect = NSMakeRect(0, 0, 400, 400);
[map0 drawInRect:rect fromRect:NSZeroRect operation:NSCompositeSourceAtop fraction:1.0f];
[map drawRect:rect];

修改

map是NSView,我想将图像绘制到

1 个答案:

答案 0 :(得分:2)

您永远不会直接致电drawRect:。此例程具有Cocoa提供的各种前提条件,例如创建CGContextRef。您实施drawRect:。 Cocoa称之为。

您的drawInRect:fromRect:operation:fraction:来电应该放入drawRect:的{​​{1}},map应该是NSView的子类。通常使用NSImageView而非自定义NSView可以更好地解决此特定问题,但如果图形更复杂,则自定义NSView是合适的。