Apple предоставляет документацию и примеры для NSTrackingAreas .
Самый простой способ отследить, когда мышь входит в окно или существует в нем, - это установить область отслеживания в окне содержимого окна. Это, однако, не будет отслеживать панель инструментов окна
В качестве быстрого примера в коде пользовательского представления контента:
- (void) viewWillMoveToWindow:(NSWindow *)newWindow {
// Setup a new tracking area when the view is added to the window.
NSTrackingArea* trackingArea = [[NSTrackingArea alloc] initWithRect:[self bounds] options: (NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways) owner:self userInfo:nil];
[self addTrackingArea:trackingArea];
}
- (void) mouseEntered:(NSEvent*)theEvent {
// Mouse entered tracking area.
}
- (void) mouseExited:(NSEvent*)theEvent {
// Mouse exited tracking area.
}
Вы также должны реализовать метод NSView updateTrackingAreas и проверить область отслеживания события, чтобы убедиться, что она правильная.