2013-06-05 4 views
0

Возможно ли программное изменение ввода клавиатуры в любом месте, когда программа находится в лотке? Пример. Когда пользователь вводит текст, скажем, в Google Chrome, тогда моя программа захватывает ключ, который пользователь вводит, и меняет его на другой символ (на другом языке)?Как создать собственную раскладку клавиатуры?

A -> ❤ 
B -> 웃 
C -> ✄ 
etc. 

Возможно ли это? и если ответ «ДА», то как?

+0

Ну, вот что делают приложения для расширения текста, поэтому я думаю, что это возможно. Возможно, вы можете посмотреть исходный код расширителя текста с открытым исходным кодом и посмотреть, как он работает? –

+0

Это может быть полезно: http://stackoverflow.com/a/10369044/227536 – Regexident

ответ

0

Вы можете сделать это несколькими способами. Вы можете захватить ключевые события NSEvent и изменить их. Вы можете переопределить keyDown: в своем подклассе вида. И еще.

Читайте на текстовой системе Cocoa первый https://developer.apple.com/library/mac/documentation/TextFonts/Conceptual/CocoaTextArchitecture/Introduction/Introduction.html

0

Вы можете использовать Quartz event taps получить все ключевые события первого и изменить их, прежде чем позволить им быть обработаны (или заменяющие различные события целиком). Обратите внимание, что пользователю необходимо будет разрешить доступ с помощью вспомогательных устройств в настройках универсального доступа, чтобы события могли видеть события клавиатуры.

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

Возможно, вы также можете выполнить что-то подобное, внедрив метод ввода. См. Input Method Kit.

1

Это звучит как работа для custom keyboard layout.

После установки раскладки клавиатуры пользователю необходимо включить его только в области предпочтений «Язык &», а затем выбрать его в меню ввода дополнительно.

Также возможно enable и select an input source (раскладка клавиатуры, являющаяся своего рода источником входного сигнала) программным способом.

+0

+1 для использования фразы «это звучит как работа для»: D О да, «обычная раскладка клавиатуры» - хорошая идея слишком. (Вы выполняете эту работу, настраиваете раскладку клавиатуры!) –

Смежные вопросы