ios - 日期选择器在 swift 2.2 中首次单击文本字段时无法打开

标签 ios swift uitextfield uidatepicker

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

我尝试过的代码:

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

输出:

enter image description here

最佳答案

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

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

关于ios - 日期选择器在 swift 2.2 中首次单击文本字段时无法打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39507306/

相关文章:

ios - 具有 Int-s 范围的初始化数组,有人可以解释一下这个单行吗?

iphone - 需要帮助在 UIView 中正确定位 UIView

ios - 仅当所有文本字段都已填写时才在 Swift 中启用按钮

ios - 将 SKTexture 导出到带有 alpha channel 的 UIImage

ios - 使用 AudioServicesPlaySystemSound 一次播放 1 个声音

ios - 试图在同一个表格 View 中创建不同的单元格 - 但无法弄清楚如何在 tableviewcontroller 中编码

ios - AppCode 没有目标产品

swift - 充满活力的背景中的标签和 NSView

iphone - UItableViewGrouped中出现多次的文本字段

UITextField占位符字符串在ios7中总是顶部对齐