【问题标题】:UIDatePickerView as FirstResponder for UITextField is missing Month Component作为 UITextField 的 FirstResponder 的 UIDatePickerView 缺少月份组件
【发布时间】:2012-07-12 21:53:19
【问题描述】:

我正在实现一个表格视图,其中对于一个特定的表格视图单元格,有一个文本字段,其第一响应者需要是一个 UIDatePicker。我已经能够实现其中的大部分,但由于某种原因,视图看起来并不完全正确。我已经被这个问题困扰了一段时间,我一直在寻找这个答案以寻求帮助。

UIDatepicker in UItextfield in UItableView

到目前为止,我的数据选择器正常显示和消失,文本字段的委托工作正常,并且可以更新文本字段。我的问题是由于某种原因缺少日期选择器的月份组件(我有一张图片,但由于我的代表少于 10 个,我无法发布它)。它看起来像一个典型的 UIDatePicker,但第一个有月份的组件是完全空的,不能滚动。日和年组件正常运行。

这就是我创建选择器视图的方式

    cell = [tableView dequeueReusableCellWithIdentifier:InfoIdentifier];
    UILabel *textLabel = (UILabel *)[cell viewWithTag:kInfoLabelTag];
    UITextFieldWithIndex *cellText = (UITextFieldWithIndex *)[cell viewWithTag:kInfoTextboxTag];
    cellText.indexPath = indexPath;

    textLabel.text = @"Birthday";

    UIDatePicker *datePicker = [[UIDatePicker alloc] init];
    datePicker.datePickerMode = UIDatePickerModeDate;
    [datePicker addTarget:self action:@selector(datePickerValueChanged:) forControlEvents:UIControlEventValueChanged];
    datePicker.tag = indexPath.row;

    cellText.inputView = datePicker;

这里是回调方法

-(void)datePickerValueChanged:(id)sender {
NSLog(@"Date Changing");
currentTextField.text = @"new date";
}

辞职第一响应者有效,如果我打印日期,月份就存在,所以唯一的问题是缺少月份标签。

我使用 Storyboards 创建了这个项目,并且我也在这个项目中使用了核心日期。但是,这个视图控制器的核心数据部分还没有实现。

有什么想法吗?

【问题讨论】:

    标签: iphone ios uitableview uidatepicker


    【解决方案1】:

    所以在仔细查看了我的代码之后,我发现问题出在我为 UIPickerView 创建的一个类别上。

    在另一个文件中,我通过使用一个类别来覆盖 UIPickerView 的 drawrect: 方法创建了一个自定义选取器视图。在覆盖的方法中,我实际上为 UIPickerView 将一些视图设置为隐藏。虽然类别只是在另一个文件中导入,但类别覆盖的方法被用于 UIDatePickerView,因此将第一个组件设置为隐藏。

    我的快速解决方法是简单地将 UIPickerView 子类化为我在另一个文件中的特殊选择器,从而隔离那里的自定义 drawRect 覆盖。完成此操作后,我的 UIDatePicker 显示正常!

    【讨论】:

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