我有一个项目,我有一个带有三个不同单元格的UITableView,以及两个部分:第0部分包含一个包含UILabel的单元格,第1部分包含两个单元格,每个单元格包含一个UITextField。当用户从第二部分中的任一单元格中选择UITextField时,将出现键盘。这可以。但是,我想要做的是当用户按下第0部分中的单元格(也将用户带到另一个屏幕),按下UITableView的footerView或完全在UITableView之外时关闭键盘。我现在的问题是我能够解除键盘,但是第一个单元格不会根据需要将用户带到下一个屏幕。这是我的代码:
func hideKeyboard() {
let tap: UITapGestureRecognizer = UITapGestureRecognizer(
target: self,
action: #selector(MyViewController.dismissKeyboard))
view.addGestureRecognizer(tap)
}
@objc func dismissKeyboard() {
view.endEditing(true)
}
此方法从viewDidLoad()调用为self.hideKeyboard()
。我意识到在我的代码中,我将tapGesture分配给父视图,该视图禁用UITableView上的点击手势,但我想知道如何解决这个问题以实现我上面提到的所需解决方案?
答案 0 :(得分:0)
所以你想根据3个不同区域的点击来解雇键盘。
UITableViewCell
并创建自定义单元格(如果您还没有)。然后,将UITapGestureRecognizer
添加到自定义单元格的contentView
以关闭键盘。UIView
,将其添加到你的视图控制器并使用{ {1}}在表格视图后面发送此自定义视图。然后,再次添加轻击手势识别器以关闭键盘。