Почему mouseExited / mouseEntered не вызывается, когда мышь выходит из NStrackingArea путем прокрутки или анимации?
I создайте такой код:
Мышь вошла и вышла:
-(void)mouseEntered:(NSEvent *)theEvent {
NSLog(@"Mouse entered");
}
-(void)mouseExited:(NSEvent *)theEvent
{
NSLog(@"Mouse exited");
}
Область отслеживания:
-(void)updateTrackingAreas
{
if(trackingArea != nil) {
[self removeTrackingArea:trackingArea];
[trackingArea release];
}
int opts = (NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways);
trackingArea = [ [NSTrackingArea alloc] initWithRect:[self bounds]
options:opts
owner:self
userInfo:nil];
[self addTrackingArea:trackingArea];
}
Подробнее:
Я добавил NSViews в качестве вложенных представлений в представлении NSScrollView. У каждого NSView есть своя собственная область отслеживания, и когда я прокручиваю свой scrollView и покидаю область отслеживания, «mouseExited» не вызывается, но без прокрутки все работает нормально. Проблема в том, что когда я прокручиваю, вызывается updateTrackingAreas, и я думаю, что это создает проблемы.
* Та же проблема с NSView без добавления его в качестве subview, так что это не проблема.