Interface Builderでテキストフィールドを作成しました。 [Return Key]を[完了]に設定します。これは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];
}