UISearchBar создать задержку / отменить - PullRequest
2 голосов
/ 13 марта 2011

У меня есть UISearchBar в моем приложении.Когда пользователь вводит любой термин, выполняется динамический поиск по внешнему API. Я отправляю весь поисковый термин как параметр в API.

Мой вопрос заключается в том, что пользователь может вводить очень быстро.есть ли способ, чтобы вместо того, чтобы делать запрос к API для каждой буквы, которую вводит пользователь, мы можем создать задержку, т.е. если разница между вводом 2 последовательных букв чрезвычайно мала, объедините это в один запрос (а не делайте 2 отдельных запроса).)

В настоящее время я использую

[NSObject cancelPreviousPerformRequestsWithTarget:self];
    [xmlParser performSelector:@selector(parseXMLFile:) withObject:url afterDelay:0.3];

Но это просто создает задержку ... Я хочу, чтобы parseXMLFile не выполнялся многократно, если разность очень мала (т.е. пользовательские типы оченьбыстро)

1 Ответ

0 голосов
/ 13 марта 2011

Используйте NSTimer.Например, запланируйте срабатывание таймера (с обратным вызовом для поиска) через 0,5 секунды, а затем, если новый критерий поиска появляется до срабатывания таймера, аннулируйте его и перенесите.

Если в течение 0,5 поиска нет нового, тогда таймерсработает и поиск будет.

...