56

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

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

4

3 に答える 3

155

デリゲート メソッドUITextFieldDelegateを実装してから、次のようにします。

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

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    [textField resignFirstResponder];
    return NO;
}
于 2012-06-09T23:39:11.080 に答える
9

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;
}
于 2012-10-25T13:23:07.003 に答える
1

next メソッドで UIViewController にカテゴリを作成

- (void)hideKeyboard
{
    [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder)
                                               to:nil
                                             from:nil
                                         forEvent:nil];
}
于 2015-06-14T17:57:10.817 に答える