Я пытаюсь создать новый метод ввода с использованием Input Method Kit. Документации очень не хватает, но я считаю, что правильно настроил проект и поместил метод ввода в ~/Library/Input Methods
после его создания. Тем не менее, я вижу странное поведение при просмотре списка источников ввода в языке & Текстовые настройки.Ошибка настройки метода ввода (IMKit)
образец Ввод числа, кажется, работает хорошо для меня, и нет никаких различий в моем новом методе ввода, который я могу найти, кроме значений для tsInputMethodIconFileKey
, InputMethodConnectionName
, InputMethodServerControllerClass
и CFBundleIdentifier
в Info.plist. Но я вижу эти проблемы:
- Когда я использую свой желаемый идентификатор пакета для приложения, в списке ничего не отображается. (Этот идентификатор пакета не существует нигде в моей системе.)
- Изменение идентификатора связки, которое будет таким же, как и образец NumberInput, отображает его в списке, но когда я его выбираю, он иногда дублирует записи в список, и обычно ведет себя странно.
- Поскольку я вношу небольшие изменения в идентификатор пакета, он, как представляется, ведет себя нормально, но как только я верну его обратно к исходному идентификатору (желаемому), он исчезает из списка.
- Если я покинул процесс, связанный с моим методом ввода, его выбор в меню снова не возобновит его.
Кто-нибудь знает, что происходит? Документация Apple для IMKit практически не имеет аналогов, и, похоже, многие люди не зафиксировали свои собственные попытки создания методов ввода. Есть что-то, что мне не хватает?
Заранее благодарен!
P.S. Да, я попытался выйти из системы и вернуться в систему и даже перезагрузить свой компьютер, и ничего похожего не изменило поведение, о котором я говорил выше.
Кажется, что это действительно решение. Грустно, что это что-то настолько простое, но недокументированное. Благодаря! – jtbandes
Спасибо. Документация полностью ничего не говорит. Я потратил день на то, чтобы выяснить проблему, но вечером я нашел ваш ответ :( – Stackia
Кажется, также нужно «inputmethod» в первых трех жетонах идентификатора пакета. В частности, 'com.myCompany.theInputName.inputmethod' не работайте для меня, но 'com.myCompany.inputmethod.theInputName' делает. Поэтому не просто добавляйте' .inputmethod' к * концу * имени вашего существующего идентификатора пакета. – pkamb