首页 > 解决方案 > iOS 12 DatePicker 值更改问题

问题描述

有一个日期选择器,即@IBOutlet。这是我的文本字段的输入视图

myTextField.inputView = 选择器

问题是当我滚动日期选择器时 - 它滚动正常,但文本字段中的值没有改变。无论我尝试更改多少次,文本字段仍然是空的。

最大的问题是这个问题很少“疯狂地”重现,而且似乎只在 iOS 12 上。我的应用程序只有几个用户总是重现这个问题,而其他人即使在尝试时也看不到它。日期选择器可能是iOS12问题吗?也许有人知道它可能是什么?

此问题显示在以下视频中

标签: iosswiftdatepickeruidatepickerios12

解决方案


您必须捕获选择器的 dateChanged 事件并按照自己的方式设置 textField ,例如:

let dateFormatter = NSDateFormatter()

// Call this in the init to setup the dateFormatter
func setupDateFormatter() {
    dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
    dateFormatter.timeStyle = NSDateFormatterStyle.NoStyle
}

// Here you catch the dateChanged event and you set the textField text
func datePickerValueChanged(sender:UIDatePicker) {
    dateTextField.text = dateFormatter.stringFromDate(sender.date)
}


推荐阅读