У меня есть ViewController
, который имеет textSearchTableView: UITableView
и SearchBar: UISearchBar
Dissmissing клавиатуры без вызова didSelectRowAtIndexPath
Я добавил UITapGestureRecognizer
к dissmis клавиатуры
override func viewDidLoad() {
// ...
self.tap = UITapGestureRecognizer(target: self, action: "DissmissKeyboard")
self.tap.delegate = self
self.view.addGestureRecognizer(self.tap)
// ...
}
func DissmissKeyboard()
{
view.endEditing(true)
}
я добавил эту функцию, чтобы предотвратить нарушение (didSelectRowAtIndexPath) после выбора ячейки
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
if touch.view.isDescendantOfView(self.textSearchTableView) {
return false
}
return true
}
Но проблема: когда клавиатура включена и я хочу dissmiss его,
если я нажимаю на textSearchTableView, (didSelectRowAtIndexPath) будет работать
Как я могу dissmiss клавиатуры, если я нажимаю на tableView
без вызова (didSelectRowAtIndexPath)? и я не хочу нарушать эту функцию, а
Я надеюсь, что я описываю проблему наилучшим образом Спасибо большое
В вашем случае его плохая идея отклонить клавиатуру, если пользователь нажимает в любом месте экрана. Куда бы нажал пользователь? Это должно быть одна из строк таблицы и, следовательно, ваша проблема. Я бы поставил кнопку на клавиатуре и приложил к ней resiginFirstResponder. –