我正在文本字段上设置日期选择器。为此,这就是我所写的..(在viewDidLoad
)
let datePicker = UIDatePicker()
datePicker.datePickerMode = UIDatePickerMode.date
datePicker.addTarget(self, action: #selector(AddDetailsViewController.theDatePickerValueChanged(sender:)), for: .valueChanged)
dateTimeTextfield.inputView = datePicker
还有外面viewDidLoad
我有这个功能theDatePickerValueChanged
像这样给予...
@objc func theDatePickerValueChanged(sender: UIDatePicker) {
let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .medium
dateTimeTextfield.text = formatter.string(from: sender.date)
}
但现在发生的事情是,当我点击文本字段时,日期选择器就会出现。但是,如果我希望在文本字段上设置当前日期,那么我必须从 datePicker 上的当前日期向前或向后移动,然后再次返回到当前日期。
但我想要的是,当 datePicker 出现时,它的当前日期应该直接设置在文本字段上,而不需要我从当前日期前进或后退。我怎样才能实现这个目标...?
您可以实现文本字段委托方法textFieldShouldBeginEditing:
在该委托方法中,您需要这样做......
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
if dateTimeTextfield.text!.isEmpty {
let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .medium
dateTimeTextfield.text = formatter.string(from: Date())
}
return true
}
别忘了设置dateTimeTextfield.delegate = self
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)