我尝试在link的桌面视图上使用搜索控制器。如果用户暂停在搜索栏上键入0.3秒,则会触发获取方法。
我知道如何使用updateSearchResultsForSearchController
对搜索栏中的每个更改触发方法,但这不是我想要的。然后我使用搜索栏委托searchBarSearchButtonClicked
,但只有在按下键盘上的搜索按钮时才会触发。
我想要的是触发一种方法,例如当用户停止输入0.3秒时。有没有办法做到这一点?或者我使用搜索控制器+获取数据的概念出错?
任何帮助都将不胜感激。
答案 0 :(得分:1)
您可以使用NSTimer
来实现此功能。只需在updateSearchResultsForSearchController
中启动或重启计时器即可。一旦用户停止输入足够长的时间来启动计时器,您就可以执行搜索:
var searchTimer: NSTimer?
func updateSearchResultsForSearchController(searchController: UISearchController) {
self.searchTimer?.invalidate()
self.searchTimer = NSTimer.scheduledTimerWithTimeInterval(0.3,
target: self,
selector: #selector(ViewController.searchTimerExpired),
userInfo: nil,
repeats: false)
}
}
@objc func searchTimerExpired() {
self.searchTimer = nil
// Do your search
}