在 swift 2.2 中首次单击文本字段时不会打开日期选择器

Date picker does not open first click on textfield in swift 2.2

我的 datePicker 视图在第一次单击 textField 时无法打开。如果我第二次单击它,则会打开日期选择器视图。在这种情况下我很困惑。为什么第一次点击没有打开?如何在第一次点击 UITextField 时显示日期选择器视图?

我试过的代码:

@IBAction func datePick(sender: UITextField)
{
    let datePickerView = UIDatePicker()
    datePickerView.datePickerMode = UIDatePickerMode.Date
    sender.inputView = datePickerView
    datePickerView.addTarget(self, action: #selector(SendSMS.showDatePicker), forControlEvents: UIControlEvents.ValueChanged)
}

func showDatePicker(sender: UIDatePicker) {
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd"

    let timeFormatter = NSDateFormatter()
    timeFormatter.dateFormat = "HH:mm:SS"
    timeField.text = timeFormatter.stringFromDate(sender.date)
    dateField.text = dateFormatter.stringFromDate(sender.date)
}

输出:

尝试使用 UITextFieldDelegate 的委托方法,而不是使用 textField 设置操作。

func textFieldDidBeginEditing(textField: UITextField!) {    //delegate method
    if textField == dateField {
        let datePickerView = UIDatePicker()
        datePickerView.datePickerMode = UIDatePickerMode.Date
        textField.inputView = datePickerView
        datePickerView.addTarget(self, action: #selector(SendSMS.showDatePicker), forControlEvents: UIControlEvents.ValueChanged)
    }
}

它也可以通过设置 TextField 操作事件来工作 Editing Did Begin。如果您设置操作 Editing Did End.

,它将不会第一次起作用