应用程序的系统范围热键

发布于 2024-09-24 04:12:24 字数 279 浏览 3 评论 0原文

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

例如 Cmd + Shift + 1 按按钮 1,Cmd + Shift + 2 按按钮 2 等。

在 Cocoa 中(使用 Objective-C)有什么方法可以实现这一点吗? 谢谢,代码很感激,因为我是可可的新手。

I have a simple window with 3 buttons and I am trying to add a system-wide hot key so i can "press" those buttons without having to switch to that app, press a button and then go back to what I was doing.

Something like Cmd + Shift + 1 press button 1, Cmd + Shift + 2 press button 2, etc.

Is there any way to achieve this in Cocoa (with Objective-C)?
Thanks, code is appreciated since I am a total newbie on Cocoa.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

童话里做英雄 2024-10-01 04:12:24

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

http://github.com /davedelong/DDHotKey

编辑

您需要的 2 个文件是:

你会像这样使用它:

- (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);
}

I also didn't like PTHotKey, so I ended up writing a new wrapper, available here:

http://github.com/davedelong/DDHotKey

edit

The 2 files you'd need are:

And you'd use it something like this:

- (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);
}
朕就是辣么酷 2024-10-01 04:12:24

PTHotKey 很旧,并且在现代 SDK 上已失效(生成大量警告)。请改用 SGHotKeysLib

SGHotKeysLib 和 PTHotKey 都是可重用的源代码。您只需将这些类添加到您自己的项目中,然后从您自己的类中使用它们。

PTHotKey is old and busted (generates reams of warnings) on modern SDKs. Use SGHotKeysLib instead.

Both SGHotKeysLib and PTHotKey are reusable source code. You need only add the classes to your own project, then use them from your own classes.

远山浅 2024-10-01 04:12:24

有一个名为 PTHotKey 的库可以使这变得相当简单。您可以通过 google 搜索 PTHotKey 或从 获取它http://code.google.com/p/shortcutrecorder/source/browse/trunk/Demo/HotKey/?r=2

There is a library called PTHotKey that makes this fairly easy. You can google PTHotKey or just grab it from http://code.google.com/p/shortcutrecorder/source/browse/trunk/Demo/HotKey/?r=2

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文