2016-12-22 4 views
1

わかっているように、次のコードを使用してendEditing searchBarのfirstResponderをスクロールしたり、異なります。tabGestureを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) 
} 

私はのtableViewにtapGestureを追加するので、私は検索バーのfirstResponderをendEditingすることができます。

しかし、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

から、代わりにあなたはどのようにSeanLintern88 @ .interactive – SeanLintern88

+0

などに内蔵されているテーブルビューにkeyboardDismissを使用して検討することもできあなたはtableViewでkwyboardDismissを使うのですか? – aircraft

答えて

0

あなたのテーブルビューにビューでないにtableView

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

いいえ、これは動作しません。 – aircraft

+0

あなたは 'self.searchBar.endEditing(true)'これを 'self.view.endEditing(true)'に変更します –

+0

これは同じ兄弟であり、このコメントは役に立ちません。 – aircraft

0

にtapGestureを追加するには

を追加します
tableView.keyboardDismissMode = .onDrag 

.onDragから.interactiveに変更することができます。タッチを除去し始めた。

編集:あなたは、それはすべてのタッチをオーバーライドします触れているビューを確認しない限り、アップルのドキュメント

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

関連する問題