代码之家  ›  专栏  ›  技术社区  ›  aleclarson

鼠标离开nswindow实例的事件

  •  0
  • aleclarson  · 技术社区  · 7 年前

    有没有一种机制可以检测出当鼠标离开活动的 NSWindow 界限?

    我已经试过重写 mouseMoved: 方法,但当鼠标位于 恩斯多夫 界限。

    0 回复  |  直到 7 年前
        1
  •  3
  •   Marek H    7 年前

    最好是用 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];
    }