Interface Builder でテキスト フィールドを作成しました。「Return Key」をDoneに設定しました。これは 1 行のみの入力です (したがって、複数行は必要ありません)。
ユーザーが完了ボタンをタップしたときに仮想キーボードを非表示にするにはどうすればよいですか?
デリゲート メソッドUITextFieldDelegate
を実装してから、次のようにします。
- (void)viewDidLoad {
[super viewDidLoad];
self.yourIBtextField.delegate = self;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
UITextView には、ユーザーがリターン キーを押したときに呼び出されるメソッドがありません。
それでも、これを行いたい場合は、UITextViewDelegate の textView:shouldChangeTextInRange:replacementText: メソッドを実装し、そのチェックで置換テキストが \n であるかどうかを確認して、キーボードを非表示にします。
他の方法があるかもしれませんが、私は知りません。
UITextViewDelegate プロトコルのサポートを宣言していることを確認してください。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range
replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
return NO;
}
return YES;
}
next メソッドで UIViewController にカテゴリを作成
- (void)hideKeyboard
{
[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder)
to:nil
from:nil
forEvent:nil];
}