Общесистемная горячая клавиша для приложения - PullRequest
8 голосов
/ 21 сентября 2010

У меня есть простое окно с 3 кнопками, и я пытаюсь добавить общесистемную горячую клавишу, чтобы я мог "нажимать" на эти кнопки без необходимости переключаться на это приложение, нажимать кнопку и затем возвращаться к тому, что я имел делает.

Что-то вроде Cmd + Shift + 1 нажмите кнопку 1, Cmd + Shift + 2 нажмите кнопку 2 и т. Д.

Есть ли способ достичь этого в Какао (с Objective-C)? Спасибо, код ценится, так как я новичок в какао.

Ответы [ 3 ]

11 голосов
/ 22 сентября 2010

Мне также не понравился 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);
}
2 голосов
/ 21 сентября 2010

PTHotKey устарел (генерирует множество предупреждений) в современных SDK.Вместо этого используйте SGHotKeysLib .

И SGHotKeysLib, и PTHotKey - это повторно используемый исходный код.Вам нужно только добавить классы в ваш собственный проект, а затем использовать их из ваших собственных классов.

1 голос
/ 21 сентября 2010

Существует библиотека PTHotKey, которая делает это довольно легко.Вы можете Google PTHotKey или просто взять его с http://code.google.com/p/shortcutrecorder/source/browse/trunk/Demo/HotKey/?r=2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...