функция обратного вызова делегата клавиатуры iOS - PullRequest
1 голос
/ 24 августа 2011

У меня настроена функция, запускаемая при нажатии клавиши возврата на клавиатуре текстового поля в приложении для iOS, которое я пишу.

Функция довольно медленная и занимает около 15 -20 секунд для запуска, в течение которого весь экран просто зависает, клавиатура зависает на экране, и ничего не происходит.

Клавиатура исчезает только после завершения функции.

XIBДля файла "Editing Did End" установлено значение "searchPlates", имя функции, и все это отлично работает, я просто хочу, чтобы клавиатура исчезла, поэтому я могу показать UIProgressView во время поиска.

У меня также есть следующий код в контроллере вида:

-(BOOL)textFieldShouldReturn:(UITextField *)thisTextField {
    if (thisTextField == self.plateInput) {
        [thisTextField resignFirstResponder];
    }
    return YES;
} 

Это достаточно ясно?Я хочу, чтобы клавиатура сразу исчезала при вызове searchPlates.

1 Ответ

3 голосов
/ 24 августа 2011

Вам следует избегать таких долго выполняющихся функций, как ваша, непосредственно в главном цикле выполнения. Вместо этого выполняйте работу, которая занимает 15-20 секунд в новом потоке. Когда вы запускаете эту работу, вы можете отображать прогресс и скрывать ее после завершения этой работы.

См. Как обновить индикатор выполнения в Какао во время длительного цикла? для конкретных примеров того, как вы могли бы сделать это.

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