保持Cocoa应用程序“活跃”等待一个键组合?

时间:2011-02-13 02:18:41

标签: cocoa

我有一个应用程序,在激活时,是'后台'并且有一个NSStatusItem图标,可以点击该图标关闭应用程序或打开NSWindow。

目前,我可以单击该图标,然后按下命令+选项+ T并且NSWindow将激活,但我不能做的是按下组合键而不先单击NSStatusItem。

所以,我想知道是否有可能在系统中注册热键或者我需要在哪里查看,这样我就不必首先点击状态项来“激活”应用程序?

谢谢!

2 个答案:

答案 0 :(得分:4)

是的!自己实现全局热键有点乏味,但有一些非常棒的包装器。我对我写的那个很偏:http://github.com/davedelong/DDHotKey

你这样使用它:

- (void) registerHotkey {
    DDHotKeyCenter * c = [[DDHotKeyCenter alloc] init];
    [c registerHotKeyWithKeyCode:9 modifierFlags:NSControlKeyMask target:self action:@selector(hotkeyWithEvent:) object:nil];
    [c release];
}

- (void) hotkeyWithEvent:(NSEvent *)hkEvent {
    NSLog(@"hotkey event: %@", hkEvent);
}

答案 1 :(得分:1)

Yes, it is possible to set up a global hot-key.正如戴夫所说,有几个包装纸;这个问题的答案给出了(AFAIK,撰写本文时)所有这些内容的链接。