Панель инструментов UIDatepicker не работает в ландшафтном режиме в ios swift - PullRequest
0 голосов
/ 26 ноября 2018

Приложение работает как на альбомной, так и на портретной ориентации.Использование UIDatepicker для выбора даты.Вот код UIDatepicker.

class ViewController: UIViewController {
    //Text Field Connection
    @IBOutlet weak var txtDatePicker: UITextField!
    //Uidate picker
    let datePicker = UIDatePicker()

    override func viewDidLoad() {
        super.viewDidLoad()
        //show date picker
        showDatePicker()
    }
    func showDatePicker(){
        //Formate Date
        datePicker.datePickerMode = .date

        //ToolBar
        let toolbar = UIToolbar();
        toolbar.sizeToFit()

        //done button & cancel button
        let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.bordered, target: self, action: "donedatePicker")
        let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
        let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.bordered, target: self, action: "cancelDatePicker")
        toolbar.setItems([doneButton,spaceButton,cancelButton], animated: false)

        // add toolbar to textField
        txtDatePicker.inputAccessoryView = toolbar
        // add datepicker to textField
        txtDatePicker.inputView = datePicker

    }
    func donedatePicker(){
        //For date formate
        let formatter = DateFormatter()
        formatter.dateFormat = "dd/MM/yyyy"
        txtDatePicker.text = formatter.string(from: datePicker.date)
        //dismiss date picker dialog
        self.view.endEditing(true)
    }
    func cancelDatePicker(){
        //cancel button dismiss datepicker dialog
        self.view.endEditing(true)
    }
}

Панель инструментов UIDatePicker отлично работает в портретном режиме.enter image description here

изменить приложение в альбомном режиме, панель инструментов скрыть.

enter image description here

Как исправитьсправка по этой проблеме.

Найдите ее в Google и перейдите по ссылке:

Добавить кнопку Готово во всплывающем окне datePickerView в Swift?

Это не будет тренироваться для меня.Помогите мне решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Это похоже на ошибку в iOS 11 и не появляется в iOS 12.Пожалуйста, обратитесь к этому на форумах разработчиков Apple.

https://forums.developer.apple.com/thread/81650

Исправление:

func textFieldDidBeginEditing(_ textField: UITextField) {

    let item = textField.inputAssistantItem
    item.leadingBarButtonGroups = []
    item.trailingBarButtonGroups = []

    //Your code here....
}

Также, пожалуйста, посмотрите на эту ссылку один раз

Пользовательская клавиатура InputAccessoryView не отображается в iOS 11

0 голосов
/ 26 ноября 2018

Я думаю, вам нужно установить рамку для выбора даты.

self.datePicker = UIDatePicker(frame:CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 216))
...