У меня есть панель поиска с кнопкой Cancel
. Кнопка Отмена появляется только тогда, когда я начинаю набирать текст в строке поиска.
Я хочу показать кнопку отмены в тот момент, когда пользователь нажимает панель поиска (когда появляется курсор и клавиатура).
Код:
let searchController = UISearchController(searchResultsController: nil)
var isSearchBarEmpty: Bool {
return searchController.searchBar.text?.isEmpty ?? true
}
var searching = false
Методы поиска:
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
let cancelButtonAttributes = [NSAttributedString.Key.foregroundColor: UIColor.systemGreen]
UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes , for: .normal)
searching = true
searchBar.showsCancelButton = true
tableView.reloadData()
}
func searchBarSearchButtonClicked(_ searchBar: UISearchBar)
{
searching = false
self.searchBar.endEditing(true)
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
searching = false
searchBar.text = nil
searchBar.showsCancelButton = false
searchBar.endEditing(true)
tableView.reloadData()
}