ios - 为什么当我按下 RETURN 键时我的键盘没有消失?

标签 ios swift swift3 keyboard

这是我的 SecondViewController 类:

class SecondViewController: UIViewController, UITextFieldDelegate {

@IBOutlet weak var txtNewItem: UITextField!
@IBOutlet weak var lblResult: UILabel!
@IBAction func btnAddNewItem(_ sender: Any) {
    let itemsObject = UserDefaults.standard.object(forKey: "items")
    var items:[String]

    if let tmpItem = itemsObject as? [String] {
        if txtNewItem.text == "" {
            //Alert message if empty txtNewItem is ""            
        } else {
            items = tmpItem
            items.append(txtNewItem.text!)
            UserDefaults.standard.set(items, forKey: "items")
        }
    } else {
        items = [txtNewItem.text!]
        UserDefaults.standard.set(items, forKey: "items")
    }
    txtNewItem.text = ""
}

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

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    textField.resignFirstResponder()
    return true
    }
}

这 2 个函数(touchesBegan 和 textFieldShouldReturn)完美地融入了我的 FisrtViewController 和许多其他应用。

我不知道为什么在这种情况下,如果我点击所有地方,键盘就会消失并且工作正常,但是当我按下回车键时,键盘不会消失。

我在 XCode 模拟器上测试了它,在我的 iPhone 7 和 iPad Air 2 上,问题在这 3 台 iDevices 上仍然存在。

注意:我自愿删除了 viewDidLoad 和 didReceiveMemoryWarning,因为我没有这些函数的代码。

最佳答案

您必须添加这些代码行:

override func viewDidLoad(){
    super.viewDidLoad()
    self.txtNewItem.delegate = self
}

进入 viewDidLoad() 以使其工作!现在它将您的类分配给 textField 的委托(delegate)。很高兴它有所帮助!

关于ios - 为什么当我按下 RETURN 键时我的键盘没有消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473394/

相关文章:

ios - 在 textField 集合中查找空的 textField

swift - 信号 : Collect values over time interval

ios - 如何使用 CFNotificationCenterGetDarwinNotifyCenter() 发送 userInfo 字典

ios - Branch.io:添加的元数据参数未获取路由:IOS Deep Link

ios - 使用 Firebase 分页时重复按键

ios - GetDataInBackgroundWithBlock | 获取数据imageData 返回 nil 值

ios - 如何在重置之前向日志添加值(Swift 中的 CoreData)

objective-c - 使用 Swift 4 在 Xcode 9 上找不到“ProjectName-Swift.h”文件?

ios - NSDate 具有相反的 AM/PM 值

objective-c - 所有属性都应该声明为 "nonatomic"吗?