TextFieldで入力が完了したらキーボードを閉じる
備忘録として残します。
○サンプルプロジェクト
コード全体
@IBOutlet weak var textField: UITextField!はstoryboardからtextFieldを繋いだものです。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
textField.delegate = self
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}
}
extension ViewController: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
}
コードを簡単に解説すると、
・textField.delegate = selfでUITextFieldDelegate内のメソッドを使えるようにする。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}
で、textField以外の場所がタップされた時にキーボードを閉じられるようにします。(touchesBeganを直訳すると"タッチが始まった"ということなので画面のどこかをタッチした時に呼ばれるアクションというイメージです)
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
return true
}
でキーボード内のreturnキーが押された時にキーボードを閉じられるようにします。
○イメージ
以上です。