在我写的应用程序中,我需要能够在用户移动指针时进行注册。为此,我使用了NSEvent
类方法addGlobalMonitorForEventsMatchingMask:handler:
。当程序在桌面上的窗口中运行时,这可以正常工作。但是,当我使用NSView
enterFullScreenMode:withOptions:
方法全屏显示应用程序时,不再调用事件处理程序。有人可以解释为什么会这样,我能做些什么来纠正这种情况?
答案 0 :(得分:1)
addGlobalMonitorForEventsMatchingMask:handler:
的说明只表示“收到发布到其他应用程序的事件副本”。
当您的应用程序占据整个屏幕时,其他应用程序不再“看到”鼠标移动事件。
换句话说,当您的应用移动到全屏时,您可能会“切换”为使用addLocalMonitorForEventsMatchingMask:handler:
。