Перехват системного события как Cmd-Tab или Spotlight в приложении Какао

В приложении Какао я пытаюсь найти способ улавливать системные события, такие как переключатель приложений, обычно запускаемый с помощью Cmd-Tab или Spotlight, обычно запускаемый с помощью Cmd -Космос. Я ищу либо способ поймать ключевое событие, либо любой другой способ, который сказал бы мне, что одно из этих событий вот-вот произойдет, и в идеале отменил бы его.

Приложение удаленного рабочего стола Apple Screen Sharing делает это, поэтому оно должно быть возможно. Он перехватывает эти события и отправляет их на подключенный удаленный компьютер.

Вот что я уже пробовал:

  • Перехват событий с помощью метода sendEvent в NSApplication. Я вижу все события, такие как нажатие клавиши Cmd и нажатие клавиши Tab, но когда оба нажаты, я ничего не вижу.
  • Регистрация прослушивателя горячих клавиш Carbon. Я могу зарегистрировать что угодно, например Cmd + Q, но опять же, когда я регистрирую Cmd + Tab, он не отвечает.

Есть другие идеи?

5
задан Anne 2 June 2011 в 13:35
поделиться