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

标签 cocoa macos

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

最佳答案

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

- (BOOL)canBecomeKeyWindow
{
    return YES;
}

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

关于cocoa - 获取无边框窗口来接收 mouseMoved 事件 (Cocoa OSX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2520127/

相关文章:

macos - Cocoa 绑定(bind) - 收到 "deallocated while key value observers were still registered"警告

dictionary - 如何使用 AppleScript 在 Mac OS X 词典中查找单词?

python - 从任何地方打开(文件)

objective-c - 如何为 Mac 创建 Cocoa 应用程序首选项?

macos - MAMP 出现异常 MySql 错误

swift - NSTask 输出缓冲区大小问题(运行 SPApplicationsDataType 命令)

xcode - Apple 沙盒和 AXUIElementRefs

objective-c - Addresponse - 仅添加到内存(XCode)

ios - NSDateFormatter 返回 null,但之前工作正常

objective-c - 将保留属性设置为新创建的对象的最佳方法