我在这里读过几篇关于同样问题的帖子,但是我不能理解它们主要是因为我在IOS开发方面很新,我使用swift。我甚至找不到术语定义"继承",也许它只是obj-c?
无论如何,我有一个带有静态单元格的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 {
答案 0 :(得分:1)
您可以在tableview上添加tapGestureRecognizer。 将tapGestureRecgonizer连接到函数/方法。 在该方法中,检查textfield是否是第一个响应者。如果是,则要求文本字段辞职第一响应者。
答案 1 :(得分:1)
我在Swift 4上有一个类似的问题,只是为了endEditing并用touchesBegan隐藏键盘。起初我找不到方法。
这两个步骤对我有用:
在表格视图中添加手势识别器:
override func viewDidLoad() {
super.viewDidLoad()
tableView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(hideKeyboard)))
}
在
中以两种方式结束编辑@objc func hideKeyboard() {
view.endEditing(true)
//textField.resignFirstResponder() /* This line also worked fine for me */
}