Я установил перехват клавиатуры:
CGEventRef myCGEventCallback (прокси CGEventTapProxy, тип CGEventType, событие CGEventRef, void * refcon) {
В основном я хочу чтобы взять нажатие на клавиатуру пользователя, съесть ввод и вместо этого опубликовать свой ввод.
Так что, если он коснется «g», я могу отправить «foo» в текстовое поле.
Я пишу в текстовое поле. с CGEventPost
и CGEventSetUnicodeString
, как показано здесь:
http://www.mail-archive.com/ cocoa-dev@lists.apple.com /msg23343.html
Проблема в том, что каждый из моих программно введенных символов попадает на крючок клавиатуры. Так что я не могу вернуть NULL
в ловушке клавиатуры, чтобы заблокировать ввод пользователя ... что также блокирует весь ввод программы!
Я выделил их на стороне Windows в C # с помощью флага 'injected', см. Мой вопрос год назад здесь: Как использовать 8-битные флаги низкого уровня в качестве условных выражений?
Ищете что-то похожее. в Objective-C.