iOS Swift 点击空白区域收起键盘代码不生效问题咨询
点击空白区域收起键盘功能失效问题修复
问题原因
代码中创建手势识别器时误用了抽象基类UIGestureRecognizer,该类是所有手势识别器的父类,不具备具体的事件识别能力,无法响应点击操作,因此绑定的收起键盘方法不会被触发。
修复方法
将手势识别器替换为可响应点击事件的具体子类UITapGestureRecognizer即可,修正后核心代码如下:
override func viewDidLoad() { super.viewDidLoad() // 替换为点击手势识别器 let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(klavyeyiKapat)) view.addGestureRecognizer(gestureRecognizer) }
完整可运行代码:
import UIKit class DetailsViewController: UIViewController { @IBOutlet weak var imageLabel: UIImageView! @IBOutlet weak var urunAdiLabel: UITextField! @IBOutlet weak var urunBedeniLabel: UITextField! @IBOutlet weak var urunFiyatiLabel: UITextField! override func viewDidLoad() { super.viewDidLoad() let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(klavyeyiKapat)) // 如果后续出现手势拦截按钮、输入框点击的问题,可打开下面这行配置 // gestureRecognizer.cancelsTouchesInView = false view.addGestureRecognizer(gestureRecognizer) } @IBAction func kaydetButonuTiklandi(_ sender: Any) { } @objc func klavyeyiKapat () { view.endEditing(true) } }
运行效果参考

内容的提问来源于stack exchange,提问作者Umutcan Bostancı
相关产品推荐
相关产品推荐

