2016-12-22 7 views
1

Как известно, мы используем приведенный ниже код: endEditing - первый поисковый запрос в SearchBar, но если есть scrollView или tableView, эффект отличается.Добавить tapGesture в tableView тогда не может выполнить tableView (_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) метод

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    super.touchesBegan(touches, with: event) 

    self.view.endEditing(true) 
} 

я добавляю tapGesture к Tableview, так что я могу endEditing firstResponder в SearchBar в.

Но после добавления tapGesture в мой tableView функция tableView tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) больше не будет работать.

Как я могу решить проблему?


Добавление

Мой полезный код ниже:

let tap:UITapGestureRecognizer = UITapGestureRecognizer.init(target: self, action: #selector(tapTableView)) 
self.tableView.addGestureRecognizer(tap) 


func tapTableView() { 

    self.searchBar.endEditing(true) 
} 
+0

Если вы не проверить вид Трогательно она перекрывает все штрихи, вместо того, чтобы вы могли рассмотреть вопрос об использовании keyboardDismiss на Tableview, который построен в таких, как .interactive – SeanLintern88

+0

@ SeanLintern88 Как Вы имеете в виду использование kwyboardDismiss на tableView? – aircraft

ответ

0

добавить tapGesture на взгляд не на Tableview

let tap:UITapGestureRecognizer = UITapGestureRecognizer.init(target: self, action: #selector(tapTableView)) 
self.view.addGestureRecognizer(tap) 
+0

Нет, это не работает. – aircraft

+0

и вы меняете 'self.searchBar.endEditing (true)' this to this 'self.view.endEditing (true)' –

+0

Это тот же самый брат, и этот комментарий бесполезен. – aircraft

0

Вместо на вашем табличном добавить

tableView.keyboardDismissMode = .onDrag 

Вы также можете изменить .onDrag на .interactive. Удалите Зажимы.

Edit: От яблока Docs

case none 
    The keyboard does not get dismissed with a drag. 
case onDrag 
    The keyboard is dismissed when a drag begins. 
case interactive 
    The keyboard follows the dragging touch offscreen, and can be pulled upward again to cancel the dismiss. 
+0

Не могли бы вы предоставить более подробную информацию? Я установил 'tableView.keyboardDismissMode = .onDrag' или'. интерактивный ', нет никакого эффекта, где-то идет не так? – aircraft