Cocoa检查是否正在使用键盘快捷键

时间:2012-06-18 16:09:19

标签: cocoa keyboard-shortcuts

我有一个用户指定的全局热键,并希望检查并确保它不会与其他应用程序发生冲突。是否有任何API可以向其他应用程序询问其快捷方式,或者我是否卡在手动检查选定的快捷方式是否为常用快捷方式(Cmd + v,Cmd + C等)?

由于

1 个答案:

答案 0 :(得分:1)

您必须询问响应者链,特别是[NSResponder tryToPerform:with:]方法将返回任何处理您的操作的内容。不要担心其他应用程序正在做什么,只需检查用户的快捷方式是否已被使用。

tryToPerform:其中: 尝试使用指定的参数执行操作指示的方法。

  • (BOOL)tryToPerform:(SEL)anAction with:(id)anObject 参数 一种行为 选择器标识动作方法。 一个东西 要用作action方法的唯一参数的对象。 回报价值 如果没有找到响应anAction的响应者,则返回NO,否则返回YES。

讨论 如果接收器响应anAction,它将使用anObject作为参数调用该方法并返回YES。如果接收者没有响应,它会将此消息发送给具有相同选择器和对象的下一个响应者。

状况 适用于OS X v10.0及更高版本。 也可以看看 - doCommandBySelector: sendAction:to:from :( NSApplication) 宣告进入 NSResponder.h

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/nsresponder_Class/Reference/Reference.html#//apple_ref/occ/instm/NSResponder/tryToPerform:with