Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSWindow注册鼠标事件(使用NSTrackingArea),即使应用程序未聚焦?_Objective C_Macos_Cocoa - Fatal编程技术网

Objective c NSWindow注册鼠标事件(使用NSTrackingArea),即使应用程序未聚焦?

Objective c NSWindow注册鼠标事件(使用NSTrackingArea),即使应用程序未聚焦?,objective-c,macos,cocoa,Objective C,Macos,Cocoa,因此,我正在开发一个桌面覆盖应用程序,它使用一个跟踪区域来确定鼠标是否进入和退出该区域,然后执行一些操作。基本上,我正在构建一个矩形,可以知道鼠标是否悬停在它上面,并且会发生变化(一个非常基本的滚动) 唯一棘手的部分是,我希望它能够在任何可见的时候注册这些事件,即使它不是firstresponder或key。问题是,为了让它注册mouseEntered和mouseExited事件,我必须首先单击窗口,使其成为键,然后它才能很好地注册它们 我的问题是,实现这一目标的最佳方式是什么?我还没能找到一个

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

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

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

下面的链接使它能够注册点击事件,即使它没有聚焦,但我找不到能够让它真正注册mouseenterned和mouseexite的东西


使用
NSTrackingActiveAlways
选项创建一个运行良好的
NSTrackingArea
。我真不敢相信我错过了。我在查看NSWindow和NSView类文档时认为我遗漏了一些东西。谢谢你的帮助。