如何指定在objective-c中使用哪个NSView?
我发现了这个在objective-c中绘制矩形的示例如何指定在objective-c中使用哪个NSView?,objective-c,macos,cocoa,nsview,Objective C,Macos,Cocoa,Nsview,我发现了这个在objective-c中绘制矩形的示例 NSRect r = NSMakeRect(10, 10, 50, 60); NSBezierPath *bp = [NSBezierPath bezierPathWithRect:r]; NSColor *color = [NSColor blueColor]; [color set]; [bp stroke]; 但是,我应该在哪里指定代码中使用哪个NSView 例如,如果我有两个NSView对象,并且我运行了此代码,我如何指定在哪个对象
NSRect r = NSMakeRect(10, 10, 50, 60);
NSBezierPath *bp = [NSBezierPath bezierPathWithRect:r];
NSColor *color = [NSColor blueColor];
[color set];
[bp stroke];
但是,我应该在哪里指定代码中使用哪个NSView
例如,如果我有两个NSView对象,并且我运行了此代码,我如何指定在哪个对象上绘制?子类
NSView
,将您的代码添加到子类的drawRect:
方法中,并用类的实例替换相应的NSView
。您不在NSView
上运行此代码,而是在NSView
子类对-drawRect:
方法的重写中运行
您需要创建自己的NSView
子类,然后在该子类中重写-drawRect:
,并将此代码放在那里:
@interface CustomView : NSView
@end
@implementation CustomView
- (void)drawRect:(NSRect)dirtyRect
{
NSRect r = NSMakeRect(10, 10, 50, 60);
NSBezierPath *bp = [NSBezierPath bezierPathWithRect:r];
NSColor *color = [NSColor blueColor];
[color set];
[bp stroke];
}
@end
最后,您当然必须实例化CustomView
的一个实例,并将其添加到视图层次结构中,就像您通常对常规NSView
所做的那样