我使用Swift开发iOS应用程序。我在故事板上有一个文本字段,需要将UIDatePicker设置为其输入视图。以下是我的代码。
@IBOutlet var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
var datePicker: UIDatePicker = UIDatePicker()
datePicker.datePickerMode = UIDatePickerMode.CountDownTimer
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm"
datePicker.setDate(dateFormatter.dateFromString("01:00")!, animated: false)
datePicker.addTarget(self, action: "datePickerValueChanged:", forControlEvents: UIControlEvents.ValueChanged)
textField.inputView = datePicker
}
func datePickerValueChanged(sender: UIDatePicker) {
println("Event is triggered.")
}
当我第一次运行应用并更改值时,ValueChanged
事件未被触发。当我第二次更改值时,会触发事件。
如果我对代码datePicker.datePickerMode = UIDatePickerMode.CountDownTimer
发表评论,则首次更改值时会触发该事件。
我需要自定义UIDatePickerMode
到CountDownTimer
。我还需要确保在第一次更改值时触发事件。我该如何解决这个问题?
谢谢。
答案 0 :(得分:2)
这可能是CountDownTimer模式下UIDatePicker的错误(它可能没有设置默认值来识别“更改”,但不是100%确定)。
要解决此问题,您可以使用viewDidLoad
方法执行以下操作:
dispatch_async(dispatch_get_main_queue(), ^{
datePicker.countDownDuration = (NSTimeInterval) duration;
});