NSWindow注册鼠标事件(使用NSTrackingArea)即使应用程序没有集中注意力?

Jos*_*her 5 macos cocoa objective-c

所以我正在开发一个桌面覆盖应用程序,该应用程序使用跟踪区域来确定鼠标进入和退出该区域,然后执行某些操作.基本上我正在构建一个矩形,可以知道鼠标是否在它上面盘旋,并且会发生变化(非常基本的翻转.)

唯一棘手的部分是我希望能够在可见时注册这些事件,即使它不是第一响应者或密钥.问题是,为了让它注册mouseEntered和mouseExited事件,我必须首先点击窗口,使它成为键,然后它注册它们.

我的问题是,实现这一目标的最佳方法是什么?我还没有找到一个完美的解决方案,尽管我很接近.

以下链接使它能够注册CLICK事件,即使它没有集中注意力,但是我无法找到让它实际注册mouseEntered和mouseExited的东西.

使OSX应用程序在未聚焦时响应第一次鼠标单击

Nic*_*ley 5

NSTrackingArea使用该选项创建一个NSTrackingActiveAlways.