2015-11-17 27 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. 手势识别器添加到表视图

  • 相关问题