[Swift4/iOS] TextField で開いたキーボードを閉じる

TextFieldをもつiOSアプリでユーザの特定のアクションでキーボードを閉じるためのコードです。

キーボードの『改行』キーを押された場合にキーボードを閉じる

  • 表示するViewControllerクラスにUITextFieldDelegateを継承させる
  • TextFieldのdelegateにselfを指定
  • textFieldShouldReturnを実装しtextField.resignFirstResponder()を呼ぶ

[swift]

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
}
}

[/swift]

TextField以外をタップされたらキーボードを閉じる

  • touchesBeganを実装しself.view.endEditing()を呼ぶ

[swift]

class ViewController: UIViewController {

@IBOutlet weak var textField: UITextField!

/* 略 */

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

[/swift]

kaizawa

闘う兼業主夫プログラマー。外資系IT企業所属。C++、Java、Solaris、Oracle、セキュリティ、DLP(Data Loss Prevention)、D&D、空手二段(極真会館)、柔道初段、柔術白帯ストライプ3(トライフォース)。English/中文

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です