2016-08-15 65 views
1

我用這爲SEARCHTEXT現場UITapGestureRecognizer在Swift中打破SearchField類中的UITableView didSelectRowAtIndexPath?

https://github.com/apasccon/SearchTextField

這裏是我的代碼:

override func viewDidLoad() { 
    super.viewDidLoad() 


    self.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: Selector("dismissKeyboard"))) 


} 

func dismissKeyboard() 
{ 
    ClientList.resignFirstResponder() 
    self.view.endEditing(true) 

} 

關閉鍵盤的工作,但didSelectRowAtIndexPath方法是沒有得到調用,所以我不能夠選擇任何東西

供參考的圖片:enter image description here

部分解決我做:

func hideKeyboard(gestureRecognizer: UIGestureRecognizer) { 
     let point = gestureRecognizer.locationInView(ClientList.tableView) 
     let indexPath = ClientList.tableView!.indexPathForRowAtPoint(point) 

     if indexPath != nil { 
      return 
     } 
     if ClientList.becomeFirstResponder() { 
      ClientList.resignFirstResponder() 
     } 

    } 

但現在的問題是,我有其他列表也一樣,我怎麼能實現對其他列表?

回答

2

你能解決這個問題這樣

viewDidLoad中

self.tap = UITapGestureRecognizer(target: self, action: "viewTapped:") 
self.tap.delegate = self 
self.view.addGestureRecognizer(self.tap) 

功能

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool { 
    if touch.view != nil && touch.view!.isDescendantOfView(self.tableView) { 
     return false 
    } 
    return true 
} 
+0

只需將函數更新爲** Swift 3 ** 'func gestureRecognizer(_ gestureRecognizer:UIGestureRecognizer,shouldReceive touch:UITouch) - > Bool {0}如果touch.view != nil && touch.view!.isDescendant(of:self.tableView){ return false } return true }'' –

0

誰是手勢的目標?我覺得應該是列表,因爲它是你點擊什麼,它是鑑於上述

+0

我攻視圖控制器的外部,TableView中是另一個類,我會嘗試你的建議 –

0
 let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard") 
    view.addGestureRecognizer(tap) 

一下添加到viewDidLoad中

並添加此功能

func dismissKeyboard() { 
    //Causes the view (or one of its embedded text fields) to resign the first responder status. 
    view.endEditing(true) 
} 
+0

請再次檢查這個問題,我已編輯它。我有部分解決方案。 –

+0

您的代碼不清楚您可以更清楚一點 – lordxxx

相關問題