автозамена в UISearchBar мешает, когда я нажимаю - PullRequest
9 голосов
/ 22 декабря 2011

У меня есть панель поиска, которая обычно работает.Проблема возникает, когда я тестирую на iPhone, автокоррекция срабатывает. У меня установлена ​​строка поиска, если текст в строке запроса> 4, то он начинает помещать вещи в массив searchResults.Если есть предложение от автозамены, и я игнорирую его и выбираю что-то из массива, приложение вылетает.Я связал ошибку с тем фактом, что слово автокоррекции выбирается до выбора строки (но оба выполняются), поэтому массив searchResults, к которому я обращался, больше не действителен.

Например, я поставилв "демп" в строку поиска.Автозамена предполагает "демо".Между тем, поиск возвращает кучу результатов с "демпстером" в нем.Я выбираю первое.По мере того, как я это делаю, поиск повторно выполняет поиск в «demo» и очищает исходный массив (имейте в виду, что я ищу сервер для поиска, чтобы массив не был заново заполнен).Затем срабатывает метод didSelectRowAtIndexRow, и в массиве ничего нет, и он вылетает.

Есть мысли?Заранее спасибо.

1 Ответ

17 голосов
/ 23 декабря 2011

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

searchBar.autocorrectionType = UITextAutocorrectionTypeNo;

и проблема будет решена.

...