Почему mouseExited/mouseEntered не вызывается, когда мышь выходит из NStrackingArea, прокручивая или делая анимацию?
Я создаю такой код:
Мышь была введена и вышла:
-(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, чтобы не проблема.