Событие изменения значения UIDatePicker не запускается при первом изменении значения

Я использую 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. Мне также нужно убедиться, что событие запускается при первом изменении значения. Как я могу решить эту проблему?

Спасибо.


person user4708651    schedule 24.03.2015    source источник


Ответы (1)


Это может быть ошибка с UIDatePicker в режиме CountDownTimer (возможно, он не устанавливает значение по умолчанию для распознавания «изменения», хотя и не уверен на 100%).

Чтобы обойти это, вы можете сделать следующее в своем методе viewDidLoad:

 dispatch_async(dispatch_get_main_queue(), ^{
      datePicker.countDownDuration = (NSTimeInterval) duration;
 });
person chrissukhram    schedule 24.03.2015
comment
Спасибо за ваш ответ. После того, как я установил значение по умолчанию, эта проблема все еще существует. Я только что обновил код, который устанавливает значение по умолчанию в вопросе. - person user4708651; 24.03.2015
comment
Проверьте обновление. Этот метод может работать лучше для вас. Я не могу проверить, так как я не рядом с моим Mac, извините за это. - person chrissukhram; 24.03.2015
comment
Спасибо за ваш ответ. - person user4708651; 26.03.2015