В приложении Какао я пытаюсь найти способ отлавливать системные события, такие как переключатель приложений, обычно запускаемый с помощью Cmd-Tab или spotlight, обычно запускаемый Cmd-Space. Я ищу способ поймать ключевое событие или другой способ сообщить мне, что одно из этих событий должно произойти, и в идеале отменить его.
Приложение удаленного рабочего стола Apple Screen Sharing делает это, так что это должно быть возможно. Он ловит эти события и отправляет их на подключенный удаленный компьютер.
Вот что я уже пробовал:
- Перехват событий с помощью метода sendEvent в NSApplication. Я вижу все события, такие как нажатие клавиши Cmd, нажатие клавиши Tab, но когда нажимаются оба, я ничего не вижу.
- Регистрация прослушивателя Carbon Hot key. Я могу зарегистрировать что-нибудь вроде Cmd + Q, но опять же, когда я регистрирую Cmd + Tab, он не отвечает.
Есть еще идеи?