迈克·阿卜杜拉的回答解释了第二点。
rect
您提供的不在视图的坐标系内。您可以使用以下代码作为NSView子类的指定初始值设定项来接收
mouseEntered:
和
mouseExited:
整个区域的事件:
- (id)initWithFrame:(NSRect)frame
{
if ((self = [super initWithFrame:frame]))
{
//by using [self bounds] we get our internal origin (0, 0)
NSTrackingArea* trackingArea = [[NSTrackingArea alloc] initWithRect:[self bounds] options:(NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways) owner:self userInfo:nil];
[self addTrackingArea:trackingArea];
[trackingArea release];
}
return self;
}
documentation
说:
创建跟踪区域对象时,
指定一个矩形(在视图中
坐标系)。。。