键盘出现了日期选择器

时间:2016-12-01 22:47:18

标签: ios swift datepicker textbox

使用最新的Xcode 8.2 Beta和Swift 3.使用文本框显示DatePicker的一些Swift示例,以显示日期并使其正常工作。我的问题是,当您点击日期输入文本框时,键盘会首先出现。如果我在文本字段中放置任何内容并在其他字段中再做一些返回,则DatePicker开始按预期工作(当您点击该字段时,DatePicker会出现,您可以输入日期)。那么当你点击日期字段时,如何才能获得DatePicker呢?我发送的事件是“退出时结束”。放入很多resigFirstResponder,看看我是否可以敲击键盘,但它们似乎没有太多影响。我使用当前日期初始化TextBox但我很确定它的工作方式与初始化相同。我有两个textfields / DatePickers。以下是我的其中一个代码:

func datePickerChangedSell(sender: UIDatePicker) {

    resignFirstResponder()
    let formatter = DateFormatter()
    formatter.dateStyle = .medium
    sellDateDisp.text = formatter.string(from: sender.date)

    resignFirstResponder()


}

    @IBAction func sellDateAction(_ sender: UITextField) {
    let datePicker:UIDatePicker = UIDatePicker()
    datePicker.datePickerMode = UIDatePickerMode.date
    sender.inputView = datePicker
    resignFirstResponder()
    datePicker.addTarget(self, action: #selector(datePickerChangedSell(sender:)), for: .valueChanged)
    resignFirstResponder()
}

2 个答案:

答案 0 :(得分:1)

激活文本字段时,日期选择器显示的原因是行sender.inputView = datePicker。您应该在viewDidLoad中执行此操作,而不是在IBaction中执行此操作。

在编辑文本字段,交换到另一个字段,然后交换后,它的工作原理必须是您正在调用sellDataAction方法,该方法指定文本字段inputView

答案 1 :(得分:0)

邓肯,谢谢你的帮助,我想出来了,你让我在那里。我试图将你的答案标记为答案,但它不会让我。我的问题是我创建了Action" Editing Did End"而不是"编辑开始"。当我删除教科书并重新添加动作时,DatePicker第一次没有文本键盘。有一个问题,有没有办法只是改变编辑结束编辑开始了吗?我看到带箭头的圆圈显示所有编辑选项,但它似乎没有让你改变它。好像我不得不放弃并重新添加文本框。另一个参考点。它不会让我直接在viewDidLoad方法内连接文本框。它坚持要把它连接到其他地方。