在我正在编写的应用程序中,我需要能够在用户移动指针时进行注册。为此,我使用了 NSEvent 类方法 addGlobalMonitorForEventsMatchingMask:handler: 。当程序在桌面上的窗口中运行时,这可以正常工作。但是,当我使用 NSView
enterFullScreenMode:withOptions:
方法使应用程序全屏显示时,不再调用事件处理程序。有人可以解释为什么会出现这种情况,以及我可以采取什么措施来纠正这种情况吗?
最佳答案
addGlobalMonitorForEventsMatchingMask:handler:
的描述称它仅“接收发布到其他应用程序的事件副本”。
当您的应用程序占据整个屏幕时,其他应用程序将不再“看到”鼠标移动事件。
换句话说,当您的应用切换到全屏时,您可能可以“切换”为使用 addLocalMonitorForEventsMatchingMask:handler:
。
关于objective-c - 全局鼠标事件和全屏应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13462256/