web-dev-qa-db-ja.com

「完了/戻る」ボタンが押されたときにテキストボックスキーボードを非表示にする方法Xcode 4.2

Interface Builderでテキストフィールドを作成しました。 [Return Key]を[完了]に設定します。これは1行のみの入力です(したがって、複数行は必要ありません)。

ユーザーが完了ボタンをタップしたときに仮想キーボードを非表示にするにはどうすればよいですか?

56
Talon

デリゲートメソッドUITextFieldDelegateを実装してから:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.yourIBtextField.delegate = self;
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return NO;
}
154
Paul Hunter

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;
}

それが大いに役立つことを願っています。

9
Himanshu padia

NextメソッドでUIViewControllerにカテゴリを作成します

- (void)hideKeyboard
{
    [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder)
                                               to:nil
                                             from:nil
                                         forEvent:nil];
}
1
ixi