Как перехватить горячую клавишу в Какао, когда окно приложения не активно - PullRequest
4 голосов
/ 16 декабря 2009

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

Нет ли способа использовать глобальные горячие клавиши в Какао? Что я должен сделать: подождать, пока Какао введет для этого функцию, или использовать функцию углерода, пока аналогичная функция не будет введена в Какао?

Ответы [ 2 ]

7 голосов
/ 16 декабря 2009

Используйте функцию RegisterEventHotKey в Carbon Event Manager . Эта функция поддерживается в 64-разрядных (обратите внимание, что в ней отсутствует примечание о доступности «недоступно в 64-разрядных»).

И наоборот, новый метод NSEvent addGlobalMonitorForEventsMatchingMask:handler: в Snow Leopard - это , а не , самый простой способ реализовать горячую клавишу. С одной стороны, требуется, чтобы у пользователя был доступ к вспомогательным устройствам; Более того, он требует, чтобы вы проверяли каждое событие самостоятельно по сравнению с системой RegisterEventHotKey, которая вызывает вашу функцию обратного вызова только тогда, когда пользователь нажимает конкретную клавишу, для которой вы зарегистрировались.

2 голосов
/ 16 декабря 2009

Взгляните на Shortcut Recorder (http://wafflesoftware.net/shortcut/) - фреймворк, использующий Carbon Event Manager для глобальных горячих клавиш, он также позволяет вам изменить пользователя на изменение HotKey (если это то, что вам нужно).

И посмотрите этот проект / код о том, как его реализовать: http://github.com/sdegutis/SDGlobalShortcuts.

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