我一直在尝试跟踪区域,但遇到了一些问题,因此我创建了一个简单的程序作为测试。我在视图的左下角(窗口的内容视图)中创建了一个跟踪区域,但是无论我进入或退出该视图的位置,我都会收到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


为什么不遵守跟踪区域?

最佳答案

它与您使用的选项有关,请尝试使用

options:NSTrackingActiveAlways | NSTrackingMouseEnteredAndExited

关于objective-c - 为什么不注意跟踪区域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10004156/

10-10 11:48