テキストフィールドの読み書き

「正月早々何をやっている」のだか、しかし正月くらいしかまとまった時間も取れない。


モーダルダイアログのよくある使い方は、テキストフィールドに何か入力をしてもらって、それをモデルのプロパティに反映させることだ。
つまり、テキストフィールドの読み書きができなくてはならない。
MFCではUpdateDataとかInvalidateとか明示的にしなくてはならなかったが、その辺は楽になっている。
しかしモーダルダイアログの場合はDelegateができないと、できないよ。


今日の練習は問題は簡単で、同じViewControllerの中でtextfieldとlabelを使用する。
これなら、テキストフィールドのイベントで直接IBActionを呼び出せばよい。
つまり、テキストフィールドのイベント"Editing Changed"に"update"をマッピングして、


- (IBAction) update
{
label.text = textfield.text;
}
ただし、キーボードを消すのには、


@interface TextfieldEXViewController : UIViewController {

  • textFieldShouldReturnを実装して、そのtextfieldをresignFirstResponderする


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

  • IBでtextfieldのdelegateをUIViewControllerに設定