我可以在故事板中通过 touchesBegan 函数设置 vc 的视图 becomeFirstResponder 吗?

Could I set vc's view becomeFirstResponder by touchesBegan func in storyboard?

在代码中,我可以使用下面的方法让 vcview becomeFirstResponder 淡化显示 keyboard.

代码如下:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

    self.view.endEditing(true)
}

我可以在故事板中设置这个 function 吗?或者单击 self.view?

self.view.endEditing(true) 有一些更简单的方法

因为如果不这样做,我将把函数 upper 复制到几乎每个 vc

只需将它放在代码中的某处,它就会解决您的代码重复问题

extension UIViewController {
    open override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        super.touchesBegan(touches, with: event)
        self.view.endEditing(true)
    }
}

我不确定这样做是否是一个好方法,也许您想重新考虑退出文本字段响应程序的架构问题,考虑您真正需要什么。

您可以创建 UIViewController 的扩展,然后为 touchesBegans 和您自己的 customTouchBegans 制作 swizzling 方法。查看 viewWillAppear 的 swizzling 方法示例 https://www.uraimo.com/2015/10/23/effective-method-swizzling-with-swift/