Таймер обратного отсчета с UIDatePicker не запускает datePickerValue в первый раз, а также в моем часе datePicker отображается как ho ... и для min - PullRequest
0 голосов
/ 28 сентября 2019

когда я выбираю сборщик для первого раза datePickerValueChanged не вызывается.однако в следующий раз он работает нормально, а часы и минуты не отображаются полностью, и еще одна вещь, которую я хочу скрыть при нажатии вне текстового поля, это работает, но когда я нажимаю на кнопку, также скрывается окно выбора, чего я не хочуи можно ли скрыть окно выбора при втором нажатии текстового поля, значит, я хочу открыть и скрыть окно выбора при прикосновении к textField.Вот мой код ..

    override func viewDidLoad() {
            super.viewDidLoad()
            super.hideKeyboardWhenTappedAround()
            self.timeTF.delegate = self
            self.picker.datePickerMode = .countDownTimer
            self.picker.addTarget(self, action: #selector(datePickerValueChanged(_:)), for: .valueChanged)
            self.picker.setValue(UIColor.white, forKey: "textColor")
            self.picker.countDownDuration = 60 * 30
            self.timeTF.rightView = rightButtonView
            self.timeTF.rightViewMode = .always
        }

      @objc func datePickerValueChanged(_ sender: UIDatePicker){
            let dateFormatter: DateFormatter = DateFormatter()
            dateFormatter.dateFormat = "hh:mm"
            let selectedDate: String = dateFormatter.string(from: sender.date)
            timeTF.text = selectedDate
            let components = Calendar.current.dateComponents([.hour, .minute, .second], from: sender.date)
            if let hour = components.hour, let minute = components.minute {
                let timeString = String(format: "%02ld:%02ld", hour, minute)
                self.timeTF.text = timeString
                self.viewModel.hour = hour
                self.viewModel.minute = minute
                self.totalTime()

            }
        }

// Hide keyboard when touch outside
    func hideKeyboardWhenTappedAround() {
        let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
        tap.cancelsTouchesInView = false
        view.addGestureRecognizer(tap)
    }

@objc func dismissKeyboard() {
        view.endEditing(true)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...