0

3 つのラベルを含むモーダル表示のビューがあります。

3 番目のラベルは編集可能ではなく、クリックすると UIDatePicker が表示され、表示された場合はキーボードが非表示になります。

だから私はそれをしました:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    if (textField == _birthdateTextField) {

        _birthdateDatePicker.hidden = NO;

        if ([_firstnameTextField isFirstResponder]) {
            NSLog(@"first");
            [_firstnameTextField resignFirstResponder];
        } else if ([_lastnameTextField isFirstResponder]) {
            NSLog(@"last");
            [_lastnameTextField resignFirstResponder];
        }

        return NO;
    }

    _birthdateDatePicker.hidden = YES;

    return YES;
}

ログ メッセージ (最後にフォーカスされたテキスト フィールドに応じて「最初」または「最後」) をはっきりと確認できますが、キーボードは表示されたままです。

誰かがここで何が問題なのかを理解していますか?

4

2 に答える 2

4

モーダル ビューを UIModalPresentationFormSheet として表示する場合、答えは次のとおりです: モーダル ダイアログでキーボードが消えない

モーダル ViewController プレゼンテーション スタイルが UIModalPresentationFormSheet の場合、iPad キーボードが消えない

于 2013-01-25T21:01:09.847 に答える
1

オーバーライドでこの複雑な作業を行う代わりに、次textFieldShouldBeginEditingのようにどこかでこれを行うことができますviewDidLoad:

_birthdateTextField.inputView = _birthdateDatePicker;

また、生年月日のテキスト フィールドを編集すると、日付ピッカーがキーボードに置き換わります。

于 2013-01-25T19:41:51.423 に答える