2017-05-21 200 views
1

使用textDidChange我创建了一个搜索栏和正在使用此功能:如何搜索在搜索栏

func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { 

    getAlamoWithSearchText(withOffsetValue: 0) 
    print("Here it is: \(posts.count)") 
} 

我怎样才能实现定时器,因此只有用户修改后已经停止打字1秒?

回答

3

有多种方法来实现这一点。其中之一是在类范围中添加一个计时器。然后使textDidChange委托方法中的计时器无效。在这下面添加一个语句来安排方法调用的“重复”参数为false。

在被调用的方法中,调用您的API来搜索元素。

+0

你可以深入一点,也许写出如何做到这一点? –

+0

var timer = timer()在任何方法体外的类中,首选在viewdidload()之上,然后在textdidchange()中添加这两个语句timer.invalidate() timer = Timer.scheduledTimer(timeInterval:1,target:self,selector: #selector(callSearchApi),userInfo:nil,重复:false)。 –

+0

@JitendraTnwar,我试图通过将注释转换为代码来编辑它,但这并不容易。请 - 一个好的答案(这似乎是)应该是完整的!把你的评论变成工作代码。谢谢。 – dfd