UITextFieldにフォーカスが当たるとソフトウェアキーボードが出てきます。
キーボードの改行ボタンを押すと、UITextFieldにUIControlEventEditingDidEndOnExitイベントが飛んできますので、それを捕まえてUITextFieldからフォーカスを外してあげます。
フォーカスが外れるとキーボードが閉じ、めでたしめでたし。
コードはこんな感じです。resignFirstResponderメソッドを呼ぶことでUITextFieldからフォーカスを外してます。
- (void)viewDidLoad { UITextField *textField = [[[UITextField alloc] initWithFrame:CGRectMake(10, 10, 200, 31)] autorelease]; textField.borderStyle = UITextBorderStyleRoundedRect; [textField addTarget:self action:@selector(editingDidEnd:) forControlEvents:UIControlEventEditingDidEndOnExit]; [self.view addSubview:textField]; } - (void)editingDidEnd:(id)sender { UITextField *textField = (UITextField *)sender; [textField resignFirstResponder]; }
Interface Builderで同じ事を行う場合は、UITextFieldの「Did End on Exit」というイベントにアクションを設定してあげます。
0 件のコメント:
コメントを投稿