Cocoa:限制鼠标在屏幕内移动

4

我正在开发一款针对OSX的展示器模式应用程序。在某些情况下,会连接另一个屏幕。我的应用程序在一个屏幕上全屏运行,使用以下代码:

[self.window.contentView enterFullScreenMode:s 
                                 withOptions:[NSDictionary dictionaryWithObject:appOptions
                                      forKey:NSFullScreenModeApplicationPresentationOptions]];

以下是可选项:
[NSNumber numberWithUnsignedInt:(NSApplicationPresentationHideMenuBar|
                                NSApplicationPresentationHideDock|
                                 NSApplicationPresentationDisableHideApplication|
                                 NSApplicationPresentationDisableProcessSwitching|
                                 NSApplicationPresentationDisableAppleMenu)];

我想要的是将鼠标光标限制在游戏运行的屏幕内。如何实现呢?
1个回答

8

在您不希望鼠标进入的屏幕上添加NSTrackingArea。当您收到鼠标进入跟踪区域的通知时,使用CGEventCreateMouseEvent和CGPostEvent将鼠标移回安全位置,可能是主屏幕上最近的点。


2
好的,我将尝试您翻转的想法 - 捕获mouseExited事件。 - jsadfeew
好的,这样做会更好,因为您需要将跟踪区域添加到视图而不仅仅是任意屏幕坐标。我忘记了这一点。 - BJ Homer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接