最终目标是防止鼠标移动到另一个屏幕(双显示设置),除非持有热键。
我想出的最好的是:
[NSEvent addGlobalMonitorForEventsMatchingMask:NSMouseMovedMask handler:^(NSEvent *mouseMovedEvent) {
// does nothing yet
}]
我选择全局监视器的原因是我的应用程序没有任何窗口(和视图),它是状态栏应用程序。所以NSTrackingArea
回家了。
非常感谢任何帮助。在Java世界中,我只是preventDefault()
事件对象。现在我需要在Objective-C中获得相同的功能。理想情况下,我希望会有“MouseMovedPastScreen”事件,但显然没有。
感谢。
同样,在Java中,我会得到两个屏幕的界限,并在角落位置停止鼠标。然后,如果在事件执行期间保持⌘
键,则允许事件冒泡。
答案 0 :(得分:2)
Controlling the mouse cursor来自Quartz Display Services编程指南。特别
CGAssociateMouseAndMouseCursorPosition (false);