在TableViewController的SearchBar中取消按钮需要双击

我在TableViewController的标题中添加了一个简单的搜索栏并实现了委托。一切正常。在TableViewController的SearchBar中取消按钮需要双击

奇怪的是,取消只在第二次敲击后才被调用。

编辑:https://www.youtube.com/watch?v=ehnA2kmGqcQ&feature=youtu.be

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 

if section == 0 {

searchBar = UISearchBar(frame: CGRectMake(0, 0, tableView.frame.size.width, 0))

searchBar.barTintColor = kbackgroundColor

searchBar.showsCancelButton = true

searchBar.showsSearchResultsButton = false

searchBar.tintColor = UIColor.whiteColor()

searchBar.delegate = self

return searchBar

}

return nil

}

func searchBarCancelButtonClicked(searchBar: UISearchBar) {

searchInProgress = false

loadObjects()

searchBar.resignFirstResponder()

}

回答:

我相信这个问题:取消按钮只会火当它是重点

UISearchBar cancel button not responding

回答:

的问题是,你是滥用取消按钮。在您的视频中,这是您的操作:

  1. 您选择搜索字段中的所有文本。

  2. 您删除搜索字段中的所有文本。

  3. 过滤未停止,因此您点击取消。

  4. 没有任何反应,所以你再次点击取消。

但是第3步开始时是错误的。当搜索字段中的所有文本都被删除时,过滤应该已停止。您应该使用搜索栏代理方法检测到这种情况并作出相应的响应。

正如我在其他意见中提到,UISearchController可以在这里一个巨大的帮助。这种情况 - 过滤表格视图 - 正是它的目的。这将有助于正确管理搜索栏的行为。

以上是 在TableViewController的SearchBar中取消按钮需要双击 的全部内容, 来源链接: utcz.com/qa/263765.html

回到顶部