UITextView Custom Автозаполнение - PullRequest
       1

UITextView Custom Автозаполнение

3 голосов
/ 19 августа 2010

Есть ли способ реализовать пользовательское автозаполнение для UITextView, скажем, предоставив ему NSDictionary или NSArray строк, за которыми нужно следить?

1 Ответ

2 голосов
/ 19 августа 2010

Вы должны запрограммировать это самостоятельно.Если вы реализуете протокол UITextViewDelegate, функция

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *) 

вызывается каждый раз, когда пользователь вводит / удаляет символ в текстовом представлении.Так, например, если пользователь вводит символ 's', то в этой функции вы проверяете массив со словами, которые вы хотите автозаполнить, чтобы увидеть, следует ли ему автозаполнение.

УСЛОВИЯ -

• Если есть только одно значение, начинающееся с 's', автозаполнение.

• Если нет значений, начинающихся с 's', илиесли есть несколько значений, начинающихся с 's', (ELSE) не выполняет автозаполнение.

Я рекомендую сортировать строковый массив автозаполнения по алфавиту и хранить глобальную переменную, которая указывает на то место, где вы остановились.в массиве.Например, если пользователь вводит «s», а первое слово с «s» находится в индексе массива 5, то, когда пользователь вводит другой символ «u», делая строку поиска «su», вы должны иметь возможность запомнитьначните с индекса массива 5, чтобы найти строку автозаполнения быстрее (и не перебирать бесполезные данные).Я бы использовал для этого массив C, хотя NSArray будет работать.

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