【发布时间】:2019-06-15 19:31:21
【问题描述】:
我正在开发一个非常简单的应用程序,例如 Notes,并且我有 searchBar。但是,每次我想搜索时,我都必须在 searchBar 中输入一些内容并按下搜索按钮。有没有办法在我输入时进行搜索?键入一个字符 - 刷新表格,键入另一个字符 - 再次刷新表格。
这就是我的扩展程序的样子。 loadData() 是一个从 CoreData 加载数据到 tobleView 的函数。
extension ViewController: UISearchBarDelegate {
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
let request : NSFetchRequest<Note> = Note.fetchRequest()
request.predicate = NSPredicate(format: "text CONTAINS[c] %@", searchBar.text!)
request.sortDescriptors = [NSSortDescriptor(key: "text", ascending: true)]
loadData(with: request)
}
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if searchBar.text?.count == 0 {
getNotes()
DispatchQueue.main.async {
searchBar.resignFirstResponder()
}
} else {
self.tableView.reloadData()
}
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
searchBar.text = ""
searchBar.endEditing(true)
getNotes()
}
【问题讨论】:
标签: swift uisearchbar