我一直在试验跟踪区域,并遇到一些问题,所以我创建了这个简单的程序作为测试。我在视图的左下角创建了一个跟踪区域(这是窗口的内容视图),但无论在何处进入或退出视图,我都会收到mouseEntered
并退出消息。我也尝试将此代码放在init方法中,并awakeFromNib
使用相同的结果。
@implementation Parent //This view is the contentView of the main window
-(void)viewDidMoveToWindow{
NSLog(@"In viwDidMoveToWindow");
NSTrackingArea *area = [[NSTrackingArea alloc]initWithRect:NSMakeRect(0,0,50,50) options:NSTrackingInVisibleRect |NSTrackingMouseEnteredAndExited |NSTrackingActiveInActiveApp owner:self userInfo:nil];
[self addTrackingArea:area];
}
-(void)mouseEntered:(NSEvent *)theEvent {
NSLog(@"Entered");
}
-(void)mouseExited:(NSEvent *)theEvent {
NSLog(@"Exited");
}
@end
为什么跟踪区域没有被尊重?
答案 0 :(得分:1)
它与您正在使用的选项有关,请尝试使用
options:NSTrackingActiveAlways | NSTrackingMouseEnteredAndExited