Событие для мыши, покидающей экземпляр NSWindow - PullRequest
0 голосов
/ 18 февраля 2019

Существует ли механизм для определения, когда мышь покидает активные NSWindow границы?

Я уже пытался переопределить метод mouseMoved:, но он не вызывается, когда мышь находится за пределами NSWindow оценки.

1 Ответ

0 голосов
/ 18 февраля 2019

Лучше всего использовать NSTrackingArea

- (void)configureTrackingArea
{
    NSRect trackingRect = self.window.contentView.frame
    NSTrackingAreaOptions trackingOptions = NSTrackingMouseEnteredAndExited | NSTrackingActiveInKeyWindow;
    NSTrackingArea *trackingArea = [[NSTrackingArea alloc] initWithRect:trackingRect options:trackingOptions owner:self userInfo:nil];

    NSView *contentView = [[self window] contentView];
    [contentView addTrackingArea:trackingArea];
}


- (void)mouseEntered:(NSEvent *)event
{
    [[self window] addChildWindow:[self previewWindow] ordered:NSWindowAbove];
}

- (void)mouseExited:(NSEvent *)event
{
    [self hidePreviewWindow];
}
...