Почему копирование и вставка в Finder не работает, когда я использую RegisterEventHotKey (Какао)? - PullRequest
1 голос
/ 31 мая 2011

Я использую функцию RegisterEventHotKey (), и когда я пытаюсь зарегистрировать Cmd + C или Cmd + V, я замечаю, что копирование и вставка в Finder не работает.

Я вставляю параметр inOptions = 0 в функцию RegisterEventHotKey (), поэтому он должен быть неисключительным, но почему, похоже, искатель не получает эту горячую клавишу?

EventTypeSpec eventType;
eventType.eventClass=kEventClassKeyboard;
eventType.eventKind=kEventHotKeyPressed;
InstallApplicationEventHandler(&MyHotKeyHandler,1,&eventType,(void *)self,NULL);

EventHotKeyID gMyHotKeyID;
NSInteger keycode = 8; // 'C'

UInt32 modkey=0;
modkey+=cmdKey;
RegisterEventHotKey((int)keycode, modkey, gMyHotKeyID,
                        GetApplicationEventTarget(), 0, &hotkeyRef);


//
OSStatus MyHotKeyHandler(EventHandlerCallRef nextHandler,EventRef theEvent,
                         void *userData)
{
    NSLog(@"test hot key");
    return eventNotHandledErr;
}

Вот код. Когда я нажимаю cmd + C, отображается журнал «Тест горячей клавиши», но программа поиска не копирует выбранные файлы.

* Моя заявка является агентом. имеет строку меню и всегда работает в фоновом режиме.

1 Ответ

3 голосов
/ 31 мая 2011

Это не работает, потому что при установке обработчика горячих клавиш вы заменяете функциональность по умолчанию для этой комбинации клавиш в каждом приложении .

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