Насколько я понимаю (поправьте меня, если я ошибаюсь), в Какао нет никакого среднего уровня поддержки только нижнего окна ввода. Основным способом поддержки метода ввода является реализация протокола NSTextInputClient , который реализует встроенное редактирование. Есть хороший пример кода , как его реализовать.
Во времена Carbon вашими выборами были события Carbon
kEventTextInputUpdateActiveInputArea
для встроенного ввода или
kEventTextInputUnicodeForKeyEvent
для ввода в нижнем окне.
См. Диспетчер текстовых услуг в Carbon . Однако они не доступны в 64-битном приложении Какао. Для 32-битного приложения Cocoa вы можете установить обработчик для последнего, используя страшную интеграцию Carbon-Cocoa . Но это, безусловно, будет сложнее, чем реализация протокола NSTextInputClient
.
Итак, я предлагаю реализовать встроенное редактирование, используя NSTextInputClient
. Это осчастливит многих жителей Восточной Азии, включая меня.