這是我SecondViewController類:當我按下RETURN鍵時,爲什麼我的鍵盤不會消失?
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上繼續發生。
N.B:我自願刪除了viewDidLoad和didReceiveMemoryWarning,因爲我沒有代碼進入這些函數。爲了
override func viewDidLoad(){
super.viewDidLoad()
self.txtNewItem.delegate = self
}
進入viewDidLoad()
這個工作:
在'textFieldShouldReturn'中也使用'self.view.endEditing(true)'。 –
對不起,我嘗試用這行代碼,並沒有工作... – LiTHiUM2525
你是否已經初始化了textfield的委託給自己?我沒有看到你的代碼 –