TextFieldをもつiOSアプリでユーザの特定のアクションでキーボードを閉じるためのコードです。
キーボードの『改行』キーを押された場合にキーボードを閉じる
- 表示するViewControllerクラスにUITextFieldDelegateを継承させる
- TextFieldのdelegateにselfを指定
- textFieldShouldReturnを実装しtextField.resignFirstResponder()を呼ぶ
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var textField: UITextField!
/* 略 */
override func viewDidLoad() {
super.viewDidLoad()
textField.delegate = self
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool{
textField.resignFirstResponder()
return true
}
}
TextField以外をタップされたらキーボードを閉じる
- touchesBeganを実装しself.view.endEditing()を呼ぶ
class ViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
/* 略 */
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}
}