Cocoa全球捷径?

时间:2010-01-25 19:39:53

标签: objective-c cocoa keyboard-shortcuts

我想为我的应用创建一个全局快捷方式。我使用addGlobalMonitorForEventsMatchingMask方法执行此操作的“酷新方法”。问题是,我的事件没有被“消耗”:我的快捷方式包括空格键,所以每当我使用快捷方式时,当我在Finder中时会弹出Quicklook。

如何防止这种情况发生?我知道这是可能的,因为许多应用程序,例如Bowtie iTunes控制器应用程序,都可以做到。

2 个答案:

答案 0 :(得分:10)

由于种种原因,

addGlobalMonitorForEventsMatchingMask:不适合替代现有的Carbon Hotkey API;对于一个人来说,这是非常低效的。并从文档:

  

...你只能观察事件;您无法修改或以其他方式阻止将事件传递到其原始目标应用程序。

  

如果启用了辅助功能,或者您的应用程序受信任以进行辅助功能访问,则只能监视与键相关的事件

Hotkey API仍然是在OS X中实现全局快捷方式的唯一方法。但与许多Carbon API不同,Hotkey API可用于64位应用程序。

答案 1 :(得分:7)

使用hotkey API,用于此目的。