Нажатие на Date Picker не отображает представление Picker в iOS13 - PullRequest
0 голосов
/ 23 октября 2019

В приложении, когда я нажимаю на UITextField, которое должно дать мне UIDatePicker, не отображается UIDatePicker при обновлении iPhone до iOS 13. Работает нормально с iOS 12+ версиями.

Я работаю над последними Xcode 11 и macOS Mojave 10.14.6

Это код, который я использую:

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    let dateString: String!
    activeTextField = textField

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "dd-MM-yyyy"

    if activeTextField == fromDateTextField && fromDateTextField.text != "" {
        dateString = fromDateTextField.text
        let date = dateFormatter.date(from: dateString!)
        datePickerView.setDate(date!, animated: false)

    } else if activeTextField == toDateTextField && activeTextField.text != "" {
        dateString = toDateTextField.text
        let date = dateFormatter.date(from: dateString!)
        datePickerView.setDate(date!, animated: false)
    }

    UIView.animate(withDuration: 0.3) {
        self.datePickerContainerView.frame = CGRect(x: 0,
                                                    y: UIScreen.main.bounds.size.height - 250,
                                                    width: UIScreen.main.bounds.size.width,
                                                    height: 250)
    }

    return false
}

1 Ответ

0 голосов
/ 23 октября 2019
class ViewController: UIViewController {

@IBOutlet weak var dateField: UITextField!
var datePicker :UIDatePicker!

override func viewDidLoad() {
    super.viewDidLoad()
    datePicker = UIDatePicker.init(frame: CGRect(x: 0, y: 0, width: view.bounds.size.width, height: 200))
    datePicker.addTarget(self, action: #selector(self.dateChanged), for: .allEvents)
    dateField.inputView = datePicker
    let doneButton = UIBarButtonItem.init(title: "Done", style: .done, target: self, action: #selector(self.datePickerDone))
    let toolBar = UIToolbar.init(frame: CGRect(x: 0, y: 0, width: view.bounds.size.width, height: 44))
    toolBar.setItems([UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil), doneButton], animated: true)
    dateField.inputAccessoryView = toolBar
}

@objc func datePickerDone() {
    dateField.resignFirstResponder()
}

@objc func dateChanged() {
    dateField.text = "\(datePicker.date)"
}
}

попробуйте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...