UISearchBar创建延迟/取消

时间:2011-03-13 18:59:21

标签: iphone objective-c cocoa-touch uisearchbar

我的应用程序中有一个UISearchBar。当用户键入任何术语时,将执行针对外部API的动态搜索。我将整个搜索词作为参数发送到API。

我的问题是,用户可以非常快速地输入。那么有没有办法代替向用户输入的每个字母请求API,我们是否可以创建延迟,即如果输入2个连续字母之间的差异非常小,将其合并为一个请求(而不是两个单独的请求)

我目前正在使用

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

但这只会造成延迟......如果差异非常小(即用户输入速度非常快),我希望parseXMLFile不会多次执行

1 个答案:

答案 0 :(得分:0)

使用NSTimer。例如,安排计时器(带回调搜索)在0.5秒后触发,然后如果在计时器触发前出现新的搜索词,则使其无效并重新安排。

如果在0.5内没有新的搜索,则会启动计时器并进行搜索。