Я работаю над очень простым приложением, таким как Notes, и у меня есть 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()
}