ios - resignFirstResponder无法正常工作

时间:2013-01-25 19:23:57

标签: ios uitextfield modal-dialog uitextfielddelegate resignfirstresponder

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

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

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

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

您可以在某个地方执行此操作,而不必在覆盖textFieldShouldBeginEditing的情况下完成此项复杂工作,例如viewDidLoad

_birthdateTextField.inputView = _birthdateDatePicker;

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