我有一个带有3个按钮的简单窗口,我试图添加系统范围的热键,这样我就可以“按下”这些按钮,而不必切换到该应用程序,按下一个按钮,然后返回到我正在做的事情。

类似于Cmd + Shift + 1按下按钮1,Cmd + Shift + 2按下按钮2,依此类推。

有什么方法可以在Cocoa中实现(使用Objective-C)?
谢谢,代码是值得赞赏的,因为我是 cocoa 的新手。

最佳答案

我也不喜欢PTHotKey,所以我最终写了一个新的包装器,可以在这里找到:

http://github.com/davedelong/DDHotKey

编辑

您需要的2个文件是:

  • DDHotKeyCenter.h
  • DDHotKeyCenter.m

  • 您将使用如下所示的内容:
    - (IBAction) registerHotkey:(id)sender {
      DDHotKeyCenter * c = [[DDHotKeyCenter alloc] init];
      if (![c registerHotKeyWithKeyCode:kVK_ANSI_1 modifierFlags:(NSCommandKeyMask | NSShiftKeyMask) target:self action:@selector(hotkeyWithEvent:) object:nil]) {
        NSLog(@"unable to register hotkey");
      } else {
        NSLog(@"registered hotkey");
      }
      [c release];
    }
    
    - (void) hotkeyWithEvent:(NSEvent *)hkEvent {
      NSLog(@"Hotkey event: %@", hkEvent);
    }
    

    09-25 20:52