Objective c Cocoa:将鼠标限制在屏幕上

Objective c Cocoa:将鼠标限制在屏幕上,objective-c,cocoa,macos,mouse,fullscreen,Objective C,Cocoa,Macos,Mouse,Fullscreen,我正在为OSX开发一个信息亭模式的应用程序。在某些情况下,会附加另一个屏幕。我的应用程序在一个屏幕上全屏运行,使用: [self.window.contentView enterFullScreenMode:s withOptions:[NSDictionary dictionaryWithObject:appOptions forKey:NSFullS

我正在为OSX开发一个信息亭模式的应用程序。在某些情况下,会附加另一个屏幕。我的应用程序在一个屏幕上全屏运行,使用:

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

[NSNumber numberWithUnsignedInt:(NSApplicationPresentationHideMenuBar|
                                NSApplicationPresentationHideDock|
                                 NSApplicationPresentationDisableHideApplication|
                                 NSApplicationPresentationDisableProcessSwitching|
                                 NSApplicationPresentationDisableAppleMenu)];
我想要的是将鼠标光标限制在游戏运行的屏幕上


如何才能做到这一点?

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

听起来不错-我将尝试您的想法翻转-捕获mouseExited-events。很好的呼叫;这将更好地工作,因为您必须添加跟踪区域到视图,而不仅仅是任意屏幕坐标。我忘了。