我可以通过故事板中的touchesBegan func设置vc的视图来成为第一个响应者吗?

时间:2016-11-29 12:18:46

标签: ios storyboard touchesbegan

在代码中,我可以使用以下方法让vc的{​​{1}} view,并播放显示becomeFirstResponder

  

enter image description here

代码如下:

keyboard

我可以在故事板中设置此override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { self.view.endEditing(true) } 吗?或点击function时,self.view.endEditing(true)有一些方法吗?

因为如果不这样做,我会将函数upper复制到几乎每个self.view

2 个答案:

答案 0 :(得分:0)

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

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

我不确定这是否是一个很好的方法,也许你想重新考虑辞去文本域响应者的架构问题,关于你真正需要的问题。

答案 1 :(得分:0)

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