我想为我的应用程序创建一个全局快捷键。我已经使用了addGlobalMonitorForEventsMatchingMask方法来实现“新的酷炫方式”。问题是,我的事件没有被“消耗掉”:我的快捷键包括空格键,所以每当我在Finder中使用快捷键时,Quicklook就会弹出。
我该如何防止这种情况发生?我知道这是可能的,因为许多应用程序,例如Bowtie iTunes控制器应用程序,都可以做到。
我想为我的应用程序创建一个全局快捷键。我已经使用了addGlobalMonitorForEventsMatchingMask方法来实现“新的酷炫方式”。问题是,我的事件没有被“消耗掉”:我的快捷键包括空格键,所以每当我在Finder中使用快捷键时,Quicklook就会弹出。
我该如何防止这种情况发生?我知道这是可能的,因为许多应用程序,例如Bowtie iTunes控制器应用程序,都可以做到。
addGlobalMonitorForEventsMatchingMask:
不适合作为现有Carbon快捷键API的替代品,原因有很多;首先它非常低效。从文档中可以看到:
... 您只能观察事件;无法修改或阻止事件被传递给其原始目标应用程序。
并且还有:
如果启用了辅助功能或您的应用程序受信任以获取辅助功能访问权限,则仅可以监视与键相关的事件
在OS X中,Hotkey API仍然是实现全局快捷键的唯一途径。但与许多Carbon API不同,Hotkey API可用于64位应用程序。