2012/06/07更新

[XCODE] TextFieldでリターンキーを押された際に、キーボードを閉じる方法

このエントリーをはてなブックマークに追加            

iPhone開発で、キーボードでの入力を行うUIを設置する事が多いはず。
使っていて、キーボードが開いて編集が終わった際に、デフォルトでは閉じないんですね。
リターンキーを押した際に閉じる方法を学んだので、ブログに記載したいと思います。

Close Keyboard iPhone UITextFieldDelegate



UITextFieldのDelegateを用いてキーボードを閉じる

UITextFieldにフォーカスがあたるとキーボードが出現します。 キーボードでの入力が終えてリターンキーを押して、キーボードを閉じる為には、UITextFieldDelegateを UITextFieldに設定します。
// textFieldはUITextField型の変数
textField.delegate = self;

そして、Delegateのメソッドでリターンキーを押された際に呼び出されるメソッドで、以下のような実装をします。
- (BOOL)textFieldShouldReturn:(UITextField *)targetTextField {

    // textFieldを最初にイベントを受け取る対象から外すことで、
    // キーボードを閉じる。
    [targetTextField resignFirstResponder];
 
   return YES;
}
「resignFirstResponder」メソッドを呼び出す事がミソで、これを呼び出すとキーボードが隠れます。
なので、何かボタンを押したらキーボードを隠したい場合にも、そのメソッド呼び出しをすれば大丈夫です。




参考資料

UITextFieldのDelegateには、他にもメソッドが用意されています。詳しくは以下をご参照ください。
UITextFieldDelegate Class Reference




最後に

ちょっとした事ですが、コーゆう事を知ってて、サンプルコードを持っていると実装スピードが上がっていいなぁと思います。
色々と調べたり、またその結果を自分のブログにも書いて、こーゆうスニペットをYoheiM.NETに集めたいと思います。
ご参考になっていれば幸いです。
最後までお読み頂きましてありがとうございました(*゚▽゚)ノ






こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。