MILLEN BOX

音楽好きの組み込みソフトエンジニアによるプログラミング(主にiOSアプリ開発)の勉強の記録

テキストフィールドにテキスト入力後、Returnでキーボードを隠す方法 [Swift1.2][UITextField]

UITextFieldはXcodeで部品を放り込めば超簡単に追加できますが、このままだとある問題が発生します。

  • テキスト入力完了後、Returnキーを押してもキーボードが隠れない

ここ、iOS開発勉強初期で引っかかる人、多いのではないでしょうか。
また、一度「あ〜そうなんか、なるほど」と理解しても暫く触っていないと、忘れてるなんてこともあると思います。(→私です。)
ということで、よく忘れるので備忘録として書いておきます。

1. ViewControllerクラスの頭にUITextFieldDelegateを追加する。

class ViewController: UIViewController, UITextFieldDelegate {
        ...
}

2. StoryboardのTextFieldをソースファイルに@IBOutletで接続しておく。

Outlet名は任意

class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var inputText: UITextField!

    ...

}

3. viewDidLoad内にinputText.delegate = selfを追加する。

class ViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var inputText: UITextField!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        inputText.delegate = self
    }

    ...

}

4. textFieldShouldReturnを追加して、内部処理にtextField.resignFirstResponder()を追加する。

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

これで、Returnキー入力後にキーボードを隠すことができるようになります。 何が起こっているかという難しい説明は抜きにしてやり方のみ説明しました。

(追記) 恥ずかしながらご指摘により手順3を追記しております...。@toshi586014 さんありがとうございました!