Hatena::ブログ(Diary)

このブログは証明できない。

2009-11-06

[]UITextViewのキーボードをReturnキーで非表示にする

完璧に風邪をひきました。これまで風邪気味と言っていました、ホントに風邪をひいたら、風邪気味とか嘘っぱちです。ところで、なぜ、風邪を「ひく」というのでしょうか?どうも、邪気を「引き寄せる」という意味らしいです。邪気すらも引き寄せる、魅力的な人間なんでしょうね。というわけで、風邪でボロボロなので、今日は小ネタ。


iPhone SDKの話なのですが、UITextFieldにフォーカスが入ると、キーボードが表示されます。それはいいのですが、そのキーボードが消えないんです。そこで、Returnキーでキーボードを非表示にする方法。非表示になるので、ReturnのところのキャプションはDoneにしておいた方がいいですね。


nameField.returnKeyType = UIReturnKeyDone;
nameField.delegate = self;

delegateをselfにしているので、textFieldのイベントがselfのオブジェクト(通常はUIViewControllerでしょう)に通知されます。そこで、下のメソッドを書いておきます。


- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return YES;
}

はい。キーボードのDoneキーをタップすると、キーボードが非表示になりましたね。ならなかった人は、コードが間違っていないか、これまでの人生が間違っていなかったか確認してください。


ちなみに、returnKeyTypeには以下のようなものが用意されています。

  • UIReturnKeyDefault
  • UIReturnKeyGo
  • UIReturnKeyGoogle
  • UIReturnKeyJoin
  • UIReturnKeyNext
  • UIReturnKeyRoute
  • UIReturnKeySearch
  • UIReturnKeySend
  • UIReturnKeyYahoo
  • UIReturnKeyDone
  • UIReturnKeyEmergencyCall

適切なものを選択して、人生に悔いを残さないようにしましょう。