2015-11-17 48 views
0

我已經在這裏閱讀了幾個關於相同問題的帖子,但無法理解它們,主要是因爲我在IOS開發中很新,而我使用了swift。此外,我甚至無法找到術語「子類」的定義,也許它只是obj-c?touchesBegan在靜態tableView不被稱爲

無論如何,我有一個tableview控制器與靜態單元格,並在一個單元格中的文本字段。當用戶在編輯文本框時點擊不同的區域時,我需要關閉鍵盤。在這裏閱讀帖子後,我改變了我的touchesBegan內容如下:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
     self.view.endEditing(true) 
     self.nextResponder()?.touchesBegan(touches, withEvent: event) 
     super.touchesBegan(touches, withEvent: event) 
} 

我仍然沒有得到觸摸在tableviewcontroller其定義爲:

class addNew: UITableViewController, UITextFieldDelegate { 

回答

1

您可以在上面添加tapGestureRecognizer你tableview。 將tapGestureRecgonizer連接到函數/方法。 在該方法中,檢查文本字段是否是第一響應者。如果是的話,則要求文本字段提交第一個響應者。

0

我在Swift 4上有一個類似的問題,只是爲了endEditing和用touchesBegan隱藏鍵盤。起初我無法找到解決辦法。

這兩個步驟爲我工作:在

@objc func hideKeyboard() { 
    view.endEditing(true) 
    //textField.resignFirstResponder() /* This line also worked fine for me */ 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    tableView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(hideKeyboard))) 
} 
  • 結束編輯方式有兩種:

    1. 手勢識別器添加到表視圖

  • 相關問題