使用最新的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()
}
答案 0 :(得分:1)
激活文本字段时,日期选择器显示的原因是行sender.inputView = datePicker
。您应该在viewDidLoad中执行此操作,而不是在IBaction
中执行此操作。
在编辑文本字段,交换到另一个字段,然后交换后,它的工作原理必须是您正在调用sellDataAction方法,该方法指定文本字段inputView
。
答案 1 :(得分:0)