Углеродное мероприятие "Потребление" - PullRequest
2 голосов
/ 03 апреля 2011

У меня есть проблема, которая противоположна проблеме, описанной здесь: cocoa-global-shortcuts . Пример: когда я назначаю клавишу «a» в качестве ярлыка (без модификаторов) каждый раз, когда я нажимаю «a», мой обратный вызов срабатывает, но другие приложения не получают нажатие «a»: TextEdit, XCode и т. Д. Я не хочу «потреблять» событие. Вот код:

 EventTypeSpec eventTypePressed = { kEventClassKeyboard, kEventHotKeyPressed };
 InstallApplicationEventHandler(&HotKeyPressedHandler, 1, &eventTypePressed, self, NULL);

 EventTypeSpec eventTypeReleased = { kEventClassKeyboard, kEventHotKeyReleased };
 InstallApplicationEventHandler(&HotKeyReleasedHandler, 1, &eventTypeReleased, self, NULL);

  EventHotKeyID eventHotKeyID = { 'htky', 1 };
  RegisterEventHotKey(shortcut.code, shortcut.flags, eventHotKeyID, GetApplicationEventTarget(), 0, &_eventHotKeyRef);

OSStatus HotKeyPressedHandler(EventHandlerCallRef nextHandler, EventRef theEvent, void *userData) {
    ShortcutHandler* handler = userData;
    [handler.delegate keyWasPressed:handler];
    return CallNextEventHandler(nextHandler, theEvent);
}

OSStatus HotKeyReleasedHandler(EventHandlerCallRef nextHandler, EventRef theEvent, void *userData) {
    ShortcutHandler* handler = userData;
    [handler.delegate keyWasReleased:handler];
    return CallNextEventHandler(nextHandler, theEvent);
}

Спасибо!

...