なんとかするから、なんとかなる

エンジニア関係のことを書きます

iOS UITextField でRetrunを押したときにキーボードを閉じる。

English version below.

はじめに

意外と忘れてしまうことの方法。 実はきちんとAppleの公式ドキュメントにも書かれています。

やり方

  1. UITextFieldDelegate に適合する
  2. 対象のUITextFieldインスタンスDelegateを設定する
  3. textFieldShouldReturn:を実装する
  4. textFieldShouldReturn: でUITextFiedlインスタンスに対して、resignFirstResponder()を呼ぶ
  5. textFieldShouldReturn: trueかfalseを返す

解説

textFieldShouldReturn:

textFieldShouldReturn:はキーボードでRetrunキーが押されたときに呼ばれます。

UITextField の規定の処理をReturnキーを押した後も実行したい場合はtrue、それ以外はfalseを返します。

キーボードを閉じるだけの場合はtrueでもfalseでも良さそうです。

regsinFirstResponder

FirstResponderすなわちフォーカス、フォーカスを破棄することの宣言です。

キーボードはフォーカスから外れると閉じるようになっています。

したがって、Retrunキーが押された際にUITextFieldからフォーカスを外すことでキーボードを閉じることができます。

参考URL