作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 TableView Controller 的一个单元格中有几个 textView,当您触摸键盘以外的任何地方时,我试图关闭键盘。我已经尝试了 touches started 方法,但它没有用。 TextView 不是透明的,并且启用了用户交互。
class RegisterTableViewController: UITableViewController {
override func viewDidLoad() {
// set all text views delegate to self
}
// dismiss keyboard on touch
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
print("touch")
super.touchesBegan(touches, with: event)
view.endEditing(true)
}
}
extension RegisterTableViewController: UITextViewDelegate {
func textViewDidBeginEditing(_ textView: UITextView) {
textView.text = ""
}
}
我是 swift 的新手,非常感谢任何帮助!
最佳答案
在您的 UITableViewCell
文件中添加 touchesBegan
代码,如果您在 TextField
外部但在单元格内部触摸,这将起作用
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.Your_TextField.endEditing(true)
}
但它不会在 cell
之外工作(在另一个 ViewController
的 UIVIew
中),所以添加 UITapGesture
实现这一目标
override func viewDidLoad() {
super.viewDidLoad()
let tapgest = UITapGestureRecognizer(target: self, action: #selector(taptoend))
self.Your_Table_View.addGestureRecognizer(tapgest)
}
@objc func taptoend()
{
self.Your_Table_View.endEditing(true)
print("Key-Board will be dismissed here")
}
关于ios - 在编辑 UITextView 和触摸 TableView Controller 中键盘以外的任何地方时无法关闭键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59433181/
我是一名优秀的程序员,十分优秀!