Cocoa:如何防止鼠标移过坐标?

时间:2014-02-04 19:27:43

标签: objective-c cocoa

最终目标是防止鼠标移动到另一个屏幕(双显示设置),除非持有热键。

我想出的最好的是:

[NSEvent addGlobalMonitorForEventsMatchingMask:NSMouseMovedMask handler:^(NSEvent *mouseMovedEvent) {
   // does nothing yet
}]

我选择全局监视器的原因是我的应用程序没有任何窗口(和视图),它是状态栏应用程序。所以NSTrackingArea回家了。

非常感谢任何帮助。在Java世界中,我只是preventDefault()事件对象。现在我需要在Objective-C中获得相同的功能。理想情况下,我希望会有“MouseMovedPastScreen”事件,但显然没有。

感谢。


修改

同样,在Java中,我会得到两个屏幕的界限,并在角落位置停止鼠标。然后,如果在事件执行期间保持键,则允许事件冒泡。

1 个答案:

答案 0 :(得分:2)

Controlling the mouse cursor来自Quartz Display Services编程指南。特别

CGAssociateMouseAndMouseCursorPosition (false);