これは私のSecondViewControllerクラスです:私のFisrtViewControllerと他の多くのアプリの中に完全に取り組ん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)。
この場合、どこかをクリックするとキーボードが消えて正常に動作していますが、リターンキーを押すとキーボードは消えません。
私はXCodeシミュレータでテストしました。私のiPhone 7とiPad Air 2では、この3つのiDevicesで問題が続きます。
N.B:これらの機能にコードがないため、私はviewDidLoadとdidReceiveMemoryWarningを自発的に削除しました。
'textFieldShouldReturn'でも' self.view.endEditing(true) 'を使います。 –
申し訳ありませんが、私はこのコード行を試していて、作業していません... – LiTHiUM2525
テキストフィールドの代理人を自己に初期化しましたか?私はあなたのコードでそれが表示されません –