我有一个模态显示的视图,其中包含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;
}


我可以清楚地看到我的日志消息(“第一”或“最后”,具体取决于最后聚焦的文本字段),但仍显示键盘。

有人正在弄清楚这是什么问题?

最佳答案

不必通过覆盖textFieldShouldBeginEditing来完成复杂的工作,您可以在某个地方进行此操作,例如在viewDidLoad中:

_birthdateTextField.inputView = _birthdateDatePicker;


当您编辑生日日期文本字段时,日期选择器将替换键盘

关于ios - iOS-resignFirstResponder无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14528941/

10-09 09:14