Нажатие на область, где находится кнопка отмены, вызывает функцию кнопки отмены, но сама кнопка отмены не отображается. Нажатие на строку поиска, как и перед вводом текста, вызывает повышение панели поиска, но не вызывает никаких функций делегата, поэтому я не могу внести необходимые изменения в свой пользовательский интерфейс. Кроме того, нажатие на строку поиска приводит к исчезновению моего табличного представления по непонятным причинам.
private func configureSearchBar() {
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.showsCancelButton = true
searchController.searchBar.delegate = self
definesPresentationContext = true
searchController.obscuresBackgroundDuringPresentation = false
view.addSubview(searchController.searchBar)
searchController.searchBar.frame = CGRect(x: 20, y: topBarHeight * 1.65, width: self.view.bounds.width - 40, height: 55)
let color:UIColor = .forestGreen
let lightForestGreen = color.withAlphaComponent(0.5)
searchController.searchBar.tintColor = lightForestGreen
searchController.searchBar.barTintColor = lightForestGreen
searchController.searchBar.backgroundColor = lightForestGreen
searchController.searchBar.layer.borderColor = lightForestGreen.cgColor
navigationItem.hidesSearchBarWhenScrolling = false
searchController.hidesNavigationBarDuringPresentation = true
searchController.searchBar.text = ""
searchController.searchBar.setShowsCancelButton(true, animated: false)
}
//cancel button not visible, but tapping on that area calls this function below:
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
print("cancel button clicked...")
agendaLabel.isHidden = false
navigationController?.navigationBar.isHidden = true
tableView.reloadData()
}
// нажатие на строку поиска приводит к тому, что оно перемещается в верхнюю часть экрана, но не вызывает любую из функций ниже :
extension ScheduleViewController: UISearchBarDelegate {
func searchBar(_ searchBar: UISearchBar, selectedScopeButtonIndexDidChange selectedScope: Int) {
agendaLabel.isHidden = true
tableView.isHidden = false
}
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
agendaLabel.isHidden = true
tableView.isHidden = false
}
func searchBarResultsListButtonClicked(_ searchBar: UISearchBar) {
agendaLabel.isHidden = true
tableView.isHidden = false
}
}