Добавьте (дополнения) подпредставление к вашему представлению и установите для его свойства visible значение NO. Создайте отдельный объект автозаполнения, который включает подпредставление как свойство и заполняет его потенциальными дополнениями. Контроллер может реагировать на события нажатия клавиш (набранные клавиши) и передавать последнее слово (подстроку текста от конца до 1-го предшествующего пробела) автозаполнению для каждого события. Основная логика в автозаполнении может быть что-то вроде:
Дано автозаполнение со списком известных слов "собака, спагетти, минута, лошадь, запасной, скорость"
Когда попросили завершить фрагмент "sp"
Затем следующие слова должны быть предложены в качестве потенциальных дополнений: «спагетти, запасные, скорость»
Что подразумевает, что вам нужно создать экземпляр списка слов (это можно сделать в инициализации вашего контроллера) и создать метод "- (NSArray *) completeFragment: (NSString *) фрагмент;". Вы можете оставить это в тестовом примере OCUnit и выполнить итерацию по реализации автозаполнения, пока не получите правильное решение. Затем вы должны написать метод, который берет дополнения из автозаполнения и перечисляет их в подпредставлении. Еще лучше, если вы создадите свойства currentWord и потенциальные компоненты в автозаполнении, которые обновляются по мере отправки «newFragment: (NSString *) фрагмент;» Сообщения. Добавьте это в OCUnit и поработайте, а затем используйте это свойство потенциальные возможности для обновления обновленного подпредставления (которое, вероятно, лучше всего смоделировать как пользовательский табличный вид).