UIDatePicker:无法选择默认值

Posted

技术标签:

【中文标题】UIDatePicker:无法选择默认值【英文标题】:UIDatePicker: it is not possible to select default value 【发布时间】:2011-11-18 14:17:35 【问题描述】:

我创建了 UIDatePicker 并为事件 UIControlEventValueChanged 添加了目标。日期选择器的默认值设置为当前日期。

单击文本字段时会显示日期选择器。然后用户可以选择日期,使用日期选择器在视图控制器外部单击,它会消失并且文本字段设置为所选日期。

问题是用户想要选择当前(默认)日期。有必要将值从默认值更改回默认值。这是因为日期选择器触发 UIControlEventValueChanged 事件。我还想让用户决定是否要填充日期值(如果他只是在带有日期选择器的视图控件之外单击)。

如何让用户选择日期选择器的默认值而不更改默认值和返回默认值?

【问题讨论】:

【参考方案1】:

您可以在显示文本字段后立即在文本字段中设置日期吗?这样,如果当前日期是他们想要在文本字段中显示的日期,则用户无需执行任何操作。

如果文本字段由于某种原因需要以空白开头,那么您可以在用户第一次点击文本字段时在文本字段中显示当前日期(即在显示 UIDatePicker 的同时)。

如果这些都不可接受,您是否尝试为另一个控制事件设置目标操作,例如UIControlEventTouchDown / UIControlEventDragInside / UIControlEventEditingDidBegin

【讨论】:

您的建议很好,但我宁愿添加按钮来确认所选日期并使用 UIDatePicker 隐藏弹出框控制器【参考方案2】:

添加一个名为_isDateChanged的私有成员,当UIControlEventValueChanged事件动作被调用时,将其设置为YES。当Popover消失时,检查_isDateChanged是否为YES,如果不是,则触发更改动作。

【讨论】:

【参考方案3】:

只需将 UIDatePicker 视图作为全局变量,并尽可能分配datePicker.date(datePicker 是全局变量)。

【讨论】:

以上是关于UIDatePicker:无法选择默认值的主要内容,如果未能解决你的问题,请参考以下文章

单元测试 UIDatePicker 时出现运行时异常([UIPickerColumnView isDragging:] 无法识别的选择器)

UIDatePicker 不隐藏

UIDatePicker 的自定义

UIDatePicker

如何在 iOS7 中将 UIDatePicker 添加到 UIALertView

UIDatePicker,minimumDate,maximumDate