Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 可可全球捷径?_Objective C_Cocoa_Keyboard Shortcuts - Fatal编程技术网

Objective c 可可全球捷径?

Objective c 可可全球捷径?,objective-c,cocoa,keyboard-shortcuts,Objective C,Cocoa,Keyboard Shortcuts,我想为我的应用程序创建一个全局快捷方式。我使用了addGlobalMonitorForEventsMatchingMask方法的“酷新方法”。问题是,我的事件不会被“消费”:我的快捷方式包括空格键,因此每当我使用快捷方式时,当我在Finder中时,Quicklook就会弹出 我怎样才能防止这种情况发生?我知道这是可能的,因为许多应用程序,例如Bowtie iTunes controller应用程序,都可以做到这一点。使用,就是为了达到这个目的。添加GlobalMonitorForeventsMa

我想为我的应用程序创建一个全局快捷方式。我使用了addGlobalMonitorForEventsMatchingMask方法的“酷新方法”。问题是,我的事件不会被“消费”:我的快捷方式包括空格键,因此每当我使用快捷方式时,当我在Finder中时,Quicklook就会弹出


我怎样才能防止这种情况发生?我知道这是可能的,因为许多应用程序,例如Bowtie iTunes controller应用程序,都可以做到这一点。

使用,就是为了达到这个目的。

添加GlobalMonitorForeventsMatchingMask:
出于各种原因,都不适合替代现有的碳热键API;首先,它的效率非常低。从文件中:

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

只有在启用了可访问性或您的应用程序受信任可访问性时,才能监视与密钥相关的事件


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

据我所知,这是唯一的全局热键API。如果您不喜欢查看函数调用或其他内容,请随意编写一个Objective-C方法来包装HIToolbox调用。热键API已经有了Cocoa包装器:上面的链接不再存在,包装器现在是:这个答案中的链接现在已经死了,这正是为什么您应该添加代码来支持您的答案。有吗(2016年)有更好的解决方案吗?也许是无碳的?谢谢!这正是我想要的!我有点担心,因为64位的转换很快就不需要碳了。