点击日期选择器不会在iOS13中弹出选择器视图

时间:2019-10-23 03:56:58

标签: ios swift datepicker ios13

在应用程序中,当我点击应该给我一个UITextField的{​​{1}}时,在将iPhone更新为UIDatePicker时没有显示UIDatePicker适用于iOS 13版本。

我正在研究最新的iOS 12+Xcode 11

这是我正在使用的代码:

macOS Mojave 10.14.6

2 个答案:

答案 0 :(得分:0)

这对我有用: 初始化:让picker = UIDatePicker() 并在viewDidLoad中调用createToolbar函数

 func createToolbar() {

    let toolbar = UIToolbar()
    toolbar.sizeToFit()
    let doneButton = UIBarButtonItem(title: "Set Date", style: .done, target: nil, action:  #selector(showDate))
    toolbar.setItems([doneButton], animated: false)
    fromDateTextField.inputAccessoryView = toolbar
    fromDateTextField.inputView = picker
    toDateTextField.inputAccessoryView = toolbar
    toDateTextField.inputView = picker
    picker.datePickerMode = .date

}

 @objc func showDate() {

    let dateFormat = DateFormatter()
    dateFormat.dateFormat = "dd-MM-yyyy"
    let string = dateFormat.string(from: picker.date)


    if fromDateTextField.isFirstResponder {
        fromDateTextField.text = string
    }

    if toDateTextField.isFirstResponder {
        toDateTextField.text = string
    }
    self.view.endEditing(true)
}

谢谢@rmmaddy的投入:)

答案 1 :(得分:-1)

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)"
}
}

尝试