Objective c 可可全球捷径?
我想为我的应用程序创建一个全局快捷方式。我使用了addGlobalMonitorForEventsMatchingMask方法的“酷新方法”。问题是,我的事件不会被“消费”:我的快捷方式包括空格键,因此每当我使用快捷方式时,当我在Finder中时,Quicklook就会弹出Objective c 可可全球捷径?,objective-c,cocoa,keyboard-shortcuts,Objective C,Cocoa,Keyboard Shortcuts,我想为我的应用程序创建一个全局快捷方式。我使用了addGlobalMonitorForEventsMatchingMask方法的“酷新方法”。问题是,我的事件不会被“消费”:我的快捷方式包括空格键,因此每当我使用快捷方式时,当我在Finder中时,Quicklook就会弹出 我怎样才能防止这种情况发生?我知道这是可能的,因为许多应用程序,例如Bowtie iTunes controller应用程序,都可以做到这一点。使用,就是为了达到这个目的。添加GlobalMonitorForeventsMa
我怎样才能防止这种情况发生?我知道这是可能的,因为许多应用程序,例如Bowtie iTunes controller应用程序,都可以做到这一点。使用,就是为了达到这个目的。
添加GlobalMonitorForeventsMatchingMask:
出于各种原因,都不适合替代现有的碳热键API;首先,它的效率非常低。从文件中:
。。。你只能观察事件;您不能修改或以其他方式阻止事件传递到其原始目标应用程序
及
只有在启用了可访问性或您的应用程序受信任可访问性时,才能监视与密钥相关的事件
热键API仍然是在OS X中实现全局快捷方式的唯一方法。但与许多Carbon API不同,热键API可用于64位应用程序。据我所知,这是唯一的全局热键API。如果您不喜欢查看函数调用或其他内容,请随意编写一个Objective-C方法来包装HIToolbox调用。热键API已经有了Cocoa包装器:上面的链接不再存在,包装器现在是:这个答案中的链接现在已经死了,这正是为什么您应该添加代码来支持您的答案。有吗(2016年)有更好的解决方案吗?也许是无碳的?谢谢!这正是我想要的!我有点担心,因为64位的转换很快就不需要碳了。