参见英文答案 >
UIDatePicker bug? UIControlEventValueChanged after hitting minimum internal 7个
我使用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.我还需要确保在第一次更改值时触发事件.我该如何解决这个问题?
谢谢.
最佳答案 这可能是CountDownTimer模式下UIDatePicker的错误(它可能没有设置默认值来识别“更改”,但不是100%确定).
要解决此问题,您可以在viewDidLoad方法中执行以下操作:
dispatch_async(dispatch_get_main_queue(), ^{
datePicker.countDownDuration = (NSTimeInterval) duration;
});