UISearchBar иногда уходит в отставку при нажатии на представления - PullRequest
1 голос
/ 22 октября 2019

Настройка контроллера моего вида выглядит следующим образом: UISearchBar вверху экрана, клавиатура внизу и другие виды между ними: пользовательские UIView, UIView, UITableView. Когда я нажимаю на ячейки табличного представления и UIButton с внутри UIView с, я могу успешно запускать свои действия, сохраняя UISearchBar все еще видимым на экране. Но когда я нажимаю UIView s, у которых нет кнопок, это вызывает searchBarShouldEndEditing, как будто строка поиска теряет фокус. Я хочу отключить это поведение и разрешить только кнопку Отмена и кнопку Готово на клавиатуре, чтобы вызвать закрытие UISearchBar.

Я думал, что это связано с пузырьковым эффектом, и попытался реализовать это исправление:

extension UIViewController : UIGestureRecognizerDelegate{

    public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
        return touch.view == gestureRecognizer.view
    }
    @IBAction func didTap(_ gestureRecognizer : UITapGestureRecognizer ) {
        //
    }

но это не решило проблему и UISearchBar все еще вызывает searchBarShouldEndEditing. Конечно, я мог бы добавить логику к searchBarShouldEndEditing, чтобы вернуть false, но не уверен, что это достаточно эффективно.

Как я могу убедиться, что UISearchBar остается на месте, нажимая на другие элементы, такие как UIView s?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...