获取无边框窗口来接收 mouseMoved 事件 (Cocoa OSX)

Mik*_*012 2 macos cocoa

我有一个小弹出窗口,用于选择按组排序的图像,并且我想在悬停在其上的任何图像周围添加一个选择框。我试图通过覆盖窗口的 mouseMoved 事件来实现此目的,但似乎具有无边框样式掩码的窗口不会接收 mouseMoved 事件,即使您已将 setAcceptsMouseMoved 事件设置为 YES。有没有办法让无边框窗口接收此事件?

Rob*_*ger 5

您需要让该窗口成为关键窗口。默认情况下,无边框窗口不能成为关键。子类NSWindow和覆盖-canBecomeKeyWindow

- (BOOL)canBecomeKeyWindow
{
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用NSTrackingArea来进行鼠标跟踪,无论如何这可能更容易/更好。