Как приложение Какао может поддерживать нижний ввод текста? - PullRequest
2 голосов
/ 27 января 2010

Я пытаюсь поддерживать международный ввод в приложении Какао на Leopard, используя ввод в нижней строке (метод ввода, при котором пользователь вводит текст в маленьком окне, называемом плавающим окном ввода, которое появляется в нижней части экран).

Я не хочу поддерживать встроенный ввод.

Когда пользователь меняет метод ввода с помощью меню ввода, я не вижу стандартного плавающего окна ввода, когда пользователь вводит текст в мое приложение. Кто-нибудь знает, что нужно сделать моему приложению, чтобы получить это окно ввода?

Спасибо.

1 Ответ

1 голос
/ 28 января 2010

Насколько я понимаю (поправьте меня, если я ошибаюсь), в Какао нет никакого среднего уровня поддержки только нижнего окна ввода. Основным способом поддержки метода ввода является реализация протокола NSTextInputClient , который реализует встроенное редактирование. Есть хороший пример кода , как его реализовать.

Во времена Carbon вашими выборами были события Carbon

  • kEventTextInputUpdateActiveInputArea для встроенного ввода или
  • kEventTextInputUnicodeForKeyEvent для ввода в нижнем окне.

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

Итак, я предлагаю реализовать встроенное редактирование, используя NSTextInputClient. Это осчастливит многих жителей Восточной Азии, включая меня.

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