Кнопка панели инструментов в UIDatePicker отображается только после двойного щелчка на TextField - PullRequest
0 голосов
/ 19 апреля 2019

Я хочу позволить пользователю установить время в UIDatePicker, которое отображается после нажатия на UITextField, но панель инструментов с кнопкой «Готово» отображается только тогда, когда пользователь дважды щелкнет по UITextField.

func showDatePicker(){
        //Formate Date
        datepickerView.datePickerMode = .time

        //ToolBar
        let toolbar = UIToolbar();
        toolbar.sizeToFit()
        let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(donedatePicker));

        toolbar.setItems([doneButton], animated: false)

        workHoursStartTextField.inputAccessoryView = toolbar

    }

@objc func doneButtonDatePicker(){

        let formatter = DateFormatter()
        formatter.dateFormat = "HH:mm"
        workHoursStartTextField.text = formatter.string(from: datepickerView.date)
        self.view.endEditing(true)
    }

@objc func tapOnStartWork(gestureReconizer: UITapGestureRecognizer) {
        print("Start work")
        datepickerView.isHidden = false
        showDatePicker()

    }

ивызывающий метод

override func viewDidLoad() {
        super.viewDidLoad()

        let tapStartWork = UITapGestureRecognizer(target: self, action: #selector(tapOnStartWork(gestureReconizer:)))
        workHoursStartTextField.addGestureRecognizer(tapStartWork)
}

Когда я нажимаю UITextField, в консоли печатается текст «Начать работу», но кнопка на панели инструментов по-прежнему скрыта.

...