LoginSignup
54
56

More than 5 years have passed since last update.

UITextFieldの入力後に入力用キーボードを閉じる方法

Last updated at Posted at 2016-03-02

iOSアプリでUITextFieldで入力フィールドを実装した際に、入力用キーボードが表示されたままの状態の際に取れる対処方法です。

1. キーボード入力の決定

入力用キーボードの右下部分を決定表記にする

以下のようにUITextFieldの「Return Key」を「Done」に設定する

スクリーンショット 2016-03-02 19.24.59.png

UITextFieldDelegateをViewControllerに実装

ViewController.swift
class ViewController : UIViewController, UITextFieldDelegate {

    @IBOutlet var textField : UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
        self.textField.delegate = self
    }

    func textFieldShouldReturn(textField: UITextField) -> Bool {
        textField.resignFirstResponder()
        return true
    }
    ...
}

ポイントは下記2点。

  • UITextFieldDelegateの実装箇所をUITextField.delegateに設定する
  • textFieldShouldReturnメソッドにUITextField.resignFirstResponder

上記を実装することで、キーボード入力の決定ボタンで、入力用キーボードを非表示にできます。

2. UITextField以外の部分をタッチ

もう一つがUITextField以外の部分をタッチした場合に非表示にする方法です。
ViewControllerのtouchesBeganメソッドをオーバライドして以下の内容を実装することで対応できます。

  override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        if (self.textField.isFirstResponder()) {
            self.textField.resignFirstResponder()
        }
    }

参考元

54
56
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54
56