我正在尝试制作一个简单的 Cocoa 程序。我有一个小黑盒子(NSView 的一个子类在屏幕上绘制一个 NSRect)跟随我的鼠标。我正在工作的那部分。我需要做的是:当我单击鼠标时,我想留下那个黑盒子的“副本”。
我一直试图让它工作五个多小时,并且我已经尝试了所有在阳光下的东西。我确信解决方案很简单,我的猜测是我缺少对基本概念的掌握。
这是我所拥有的(“留下”应该是留下的副本):
@property NSMutableArray *stays;
...
- (void) makeStay {
if (!_stays)
_stays = [[NSMutableArray alloc]init];
NSValue *newStay = [NSValue valueWithRect:self.frame];
[_stays addObject:newStay];
}
...
-(void)drawRect:(NSRect)rect {
[[NSColor blackColor] set];
NSRectFill([self bounds]);
for (int x = 0; x < _stays.count; x++) {
NSRectFill([_stays[x] rectValue]);
}
}
任何有关如何理解 NSView 的基本原理的帮助,以便这将不胜感激!