2014-10-05 2 views
8

Я видел, что этот вопрос задан несколько раз, но никто, кажется, не имеет ответа. Я пытаюсь создать функцию автокоррекции на пользовательской клавиатуре, но я полностью потерял ее, как это сделать. Apple дает некоторую документацию, но она не очень подробно. Я знаю, что это имеет какое-то отношение к данным UILexicon, но я не уверен, что с ним делать и как использовать его для исправления строк текста, который вводит пользователь.Использование UILexicon для реализации автозамены в iOS 8 Расширение клавиатуры

Любая помощь была бы принята с благодарностью.

То, что я нашел до сих пор:

let controller = UIInputViewController() 

    controller.requestSupplementaryLexiconWithCompletion({ 
     lexicon in 

     println(lexicon.description) 

    }) 

Но это, насколько я получил. Не уверен, что делать дальше.

+2

Спасибо за повторное задание на подобный вопрос, который я отправил - надеюсь, что кто-то ответит! – agf119105

ответ

9

Вы задаете очень сложный вопрос. Короче говоря, нет встроенного доступа к autocorrect на iOS8; также нет доступа к API-интерфейсам на iOS, которые позволяют системе делать такие вещи, как краткий эффект «возможной ошибки» или другие аспекты системы поведение автокоррекции, такое как диалоговое окно предложения на месте (on iOS 7, или если вы не видите панель предложений) или «исправит» синий фон (на iOS 8).

вещи, которые вы не можете сделать:

dotted red line

на месте Индикатор ошибки

in-place suggestion

диалог автозамены на месте

will correct

предложения индикатор бар автозамены

что вы можете сделать, это написать свой собственный автозамены двигатель, с нуля, в том числе и Вашей собственной обработки текста и анализа и собственных идиомы пользовательского интерфейса. Это должно быть сделано с ограничением, которое вы не можете сделать за пределами границ вашей клавиатуры, и вы не можете изменять что-либо еще на экране. Ряд сторонних клавиатур делают это, например, minuum и swiftkey (отказ от ответственности: я работаю на миниуме), но это неслучайный объем работы. Если вам интересно играть с этим, хорошим местом для начала может быть встроенный класс UITextChecker, хотя автоматическая коррекция в конечном счете является проблемой, отличной от проверки орфографии.

UILexicon полезен только после того, как вы уже реализовали вещи; все, что он действительно предлагает вам, - это список слов, которые вы можете использовать для дополнения любого словаря, который вы используете, а также для реализации любых текстовых ярлыков, которые ваш пользователь мог бы добавить в свои системные настройки. Этого само по себе недостаточно, чтобы построить систему автоматической коррекции.

Приложение: How to Write a Spelling Corrector большое маленькое эссе/учебник Питера Норвиг, которые вы можете найти интересные, и я рекомендовал бы, даже если вы не пытается написать автоматического исправления.

+2

Когда я изначально задал этот вопрос, я каждый день проверял ответ и в конце концов сдался. В итоге я создал очень примитивный автокоррект, набрав на клавиатуре, не глядя на него, а затем добавив все слова с ошибками в качестве ключа на Plist с правильным словом в качестве значения. Затем каждое введенное слово проверяет, имеет ли он пару. Это неэффективно, и навсегда требуется добавить новые слова, но он работает! Статья, которую вы добавили, ТОЧНО, что я искал навсегда. Так что большое спасибо за ваш ответ. Моя клавиатура - это макет Дворжака, если вам все равно. – SomeGuy

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