如何在用户按下键盘上的 return 按钮时关闭键盘?

How to dismiss keyboard when a user press return button on keyboard?

我正在使用 this pod 来处理文本字段和键盘。在我的 App.Delegate 文件中,我导入了 IQKeyboardManagerSwift 并启用了它,现在工作正常。但是,我现在遇到的问题是,即使用户点击键盘上的 return 键,我也无法关闭键盘并且键盘保持不变。我添加了 IQKeyboardManager.shared.shouldResignOnTouchOutside = true,因此当用户点击键盘外部时,键盘消失。我想添加这样的功能,即当用户点击键盘上的 return 按钮时,键盘也会消失。我猜resignFirstResponder()会启用这个功能(Resigns currently first responder field),但我不知道如何实现那个功能。

我看到其他人使用 textfieldShouldReturn 函数,但我想如果我在视图控制器中添加代码,我必须多次创建该函数。目前,我有几个文本字段,所以如果可能的话,我只想写一次代码。

如何实现该功能?

import IQKeyboardManagerSwift

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {


var window: UIWindow?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    IQKeyboardManager.shared.enable = true
    IQKeyboardManager.shared.enableAutoToolbar = false
    IQKeyboardManager.shared.shouldResignOnTouchOutside = true
    IQKeyboardManager.shared.resignFirstResponder()
    
    
    return true
}
....
}

将所有文本字段的委托设置为 viewController:

yourTextField.delegate = self

然后 viewController 让 UITextField Delegate 感到舒适:

// MARK: - UITextFieldDelegate
extension YourViewController: UITextFieldDelegate {
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        view.endEditing(true)
    }
}