用户按下键盘上的返回按钮时如何关闭键盘?

问题描述

我正在使用this pod来处理文本字段和键盘。在我的App.Delegate文件中,我导入了IQKeyboardManagerSwift并启用了它,现在可以正常工作了。但是,我现在遇到的问题是,即使用户点击键盘上的回车键,我也无法关闭键盘,并且键盘保持不变。我添加IQKeyboardManager.shared.shouldResignOnTouchOutside = true,因此当用户点击键盘的外部时,键盘关闭。我要添加功能是,当用户点击键盘上的返回按钮时,键盘也会关闭。我猜resignFirstResponder()会启用此功能(“当前退出第一响应者”字段),但我不知道如何实现该功能

我看到其他一些人使用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
}
....
}

解决方法

将所有textField的委托设置为viewController:

yourTextField.delegate = self

然后让您的viewController适应UITextField委托:

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