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 件のコメント:
コメントを投稿