objective-c - NSWindow 注册鼠标事件(使用 NSTrackingArea),即使应用程序未获得焦点?

标签 objective-c macos cocoa

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

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

我的问题是,实现它的最佳方式是什么?尽管我很接近,但我还没有找到完美的解决方案。

下面的链接使它能够注册 CLICK 事件,即使它没有获得焦点,但我找不到能让它实际注册 mouseEntered 和 mouseExited 的东西。

Make OSX application respond to first mouse click when not focused

最佳答案

使用选项 NSTrackingActiveAlways 创建一个 NSTrackingArea

关于objective-c - NSWindow 注册鼠标事件(使用 NSTrackingArea),即使应用程序未获得焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6298302/

相关文章:

cocoa - 应用程序未正确使用 Store Kit API

objective-c - NSToolbar 在 Leopard 和 Snow Leopard 中看起来不同

iOS8 KeyboardWillShowNotification 第三方键盘高度

iphone - UILabel 文本缩放,以编程方式?

ios - 获取 native 应用程序 objective-c 中当前播放的非音乐应用程序轨道的信息

iphone - 在不丢失索引的情况下对数组进行升序排序 Objective-C

macos - 如何调试 $PATH?

linux - -bash : installation: No such file or directory in Mac Terminal

angular - 使用 Visual Studio 在 Mac 上创建一个新的 Angular 项目

iphone - 如何设置用户 Quartz2D 坐标系并进行缩放以避免绘制模糊?