У меня есть контроллер представления, в котором я динамически создаю UISearchController и назначаю его для self.navigationItem.searchController
.
class MyViewController: UIViewController, UISearchBarDelegate {
let searchController = UISearchController(searchResultsController: nil)
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.searchController = searchController
searchController.searchBar.delegate = self
// launch the app directly into this search text box
searchController.searchBar.becomeFirstResponder()
}
func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool {
// I tried this
searchBar.resignFirstResponder()
// and this
searchBar.endEditing(true)
// and finally this
return true
}
}
Клавиатура прячется, когда пользователь касается любого места за пределами панели поиска, и экран возвращается к своей яркости. Это ожидаемое поведение.
Однако, когда пользователь нажимает кнопку [Поиск] на экранной клавиатуре, клавиатура отключается, но экран остается тусклым. Ни один из подвидов не может быть использован, за исключением того, что пользователь снова нажимает на строку поиска, а затем клавиатура возвращается.
Короче говоря, единственный способ для пользователя продолжать использовать контроллер представления - это не нажимать кнопку [поиск], что нелогично.
я что-то упустил?