Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 点击其他单元格时,如何在TableViewController中隐藏键盘?_Ios_Swift_Xcode - Fatal编程技术网

Ios 点击其他单元格时,如何在TableViewController中隐藏键盘?

Ios 点击其他单元格时,如何在TableViewController中隐藏键盘?,ios,swift,xcode,Ios,Swift,Xcode,我有一个TableViewController,其中UITextFields作为单元格,而单元格没有TextField。 当我在UITableViewDelegate实现中点击另一个没有文本字段的单元格时,我想隐藏键盘: func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { view.endEditing(true) } 这可能会有帮助- extension YourViewCon

我有一个TableViewController,其中UITextFields作为单元格,而单元格没有TextField。

当我在UITableViewDelegate实现中点击另一个没有文本字段的单元格时,我想隐藏键盘:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    view.endEditing(true)
}
这可能会有帮助-

extension YourViewController: UITableViewDelegate {

        func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
            self.view.endEditing(true)
        }
    }

你有两种处理方法, 首先,当用户点击不带TextField的单元格时,可以通过表视图委托隐藏键盘,但应该忽略包含TextField的行

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    view.endEditing(true)
}
或者,您可以将UITapgestureRecognitor添加到没有文本字段的单元格中

func hideKeyboardWhenTappedAround() {
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(UITableViewCell.dismissKeyboard))

    view.addGestureRecognizer(tap)
}

@objc func dismissKeyboard() {
    view.endEditing(true)
}
尝试使用“IQKeyboardManagerSwift”,它拥有您将来需要的所有键盘控件。

我建议您根据需要使用/XLForm。这将自动处理键盘管理的所有需求,并使生活更轻松。