【问题标题】:ios - resignFirstResponder not workingios - resignFirstResponder 不工作
【发布时间】:2013-01-25 19:23:57
【问题描述】:

我有一个包含 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;
}

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

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

【问题讨论】:

  • 不确定这是否有帮助,但您可以将 _birthdateDatePicker 对象设置为 _birthdateTextFieldinputView 属性。如果你这样做,你真的不需要覆盖textFieldShouldBeginEditing
  • 哇,谢谢!这样工作起来更容易:D请给出答案,以便我接受它;)

标签: ios uitextfield modal-dialog uitextfielddelegate resignfirstresponder


【解决方案1】:

【讨论】:

    【解决方案2】:

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

    _birthdateTextField.inputView = _birthdateDatePicker;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多