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

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

コメントを残す

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