在 swift 中以编程方式从所有视图层次结构中关闭键盘

dismiss keyboard from all view hierarchy programmatically in swift

我有如下截图所示的视图控制器。

当我触摸文本字段时,键盘出现。 我想在任何屏幕上点击、拖动时关闭键盘。

我试图将此代码放入 viewcontroller,但不起作用。

    func dismissKey() {
    let tap: UITapGestureRecognizer = UITapGestureRecognizer( target: self, action: #selector(dismissKeyboard))
    tap.cancelsTouchesInView = false
    addGestureRecognizer(tap)
}

@objc func dismissKeyboard() {
    endEditing(true)
    resignFirstResponder()
}

但是如果我将此代码放入自定义单元格 class 中键入 1,它只会在我点击此单元格时关闭键盘。

如何在触摸任何屏幕时关闭键盘?

如果您想在 UIViewController 中关闭键盘,请尝试:

@objc func dismissKeyboard() {
    view.endEditing(true)
    resignFirstResponder()
}