【问题标题】:Using a UIDatePicker instead of Keyboard for UITextField Issues对 UITextField 问题使用 UIDatePicker 而不是键盘
【发布时间】:2015-11-16 03:30:31
【问题描述】:

您好,我试图在点击UITextField 时显示UIDatePicker 而不是键盘,以便用户可以给出事件的开始和结束时间。我的代码有效,但效果不佳,而且不是我想要的方式。

我的第一个问题是,每当您点击其中一个 UITextField 时,UIDatePicker 只会在第二次点击 UITextField 时出现。否则会显示原来的键盘。

我的第二个问题是,每当编辑 UIDatePicker 时,它只会在编辑 UIDatePicker 时更改 UITextField。我需要UITextField 在打开后立即在UIDatePicker 中显示字符串,以便UITextFieldUIDatePicker 的情况保持同步。

这是我当前的代码:

override func viewDidLoad() {
super.viewDidLoad()
 var datePickerView  : UIDatePicker = UIDatePicker()
    datePickerView.datePickerMode = UIDatePickerMode.Time
    StartTimeTextField.inputView = datePickerView
    datePickerView.addTarget(self, action:
    Selector("handleDatePicker:"), forControlEvents: UIControlEvents.ValueChanged)

    var datePickerView2  : UIDatePicker = UIDatePicker()
    datePickerView2.datePickerMode = UIDatePickerMode.Time
    EndTimeTextField.inputView = datePickerView2
    datePickerView2.addTarget(self, action: Selector("handleDatePicker2:"), forControlEvents: UIControlEvents.ValueChanged)
    }

func handleDatePicker(sender: UIDatePicker) {
    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "hh mm am pm"
    StartTimeTextField.text = dateFormatter.stringFromDate(sender.date)
}



func handleDatePicker2(sender: UIDatePicker) {
    var dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "hh mm am pm"
    EndTimeTextField.text = dateFormatter.stringFromDate(sender.date)
}

谁能帮帮我?谢谢

【问题讨论】:

标签: ios swift keyboard uitextfield uidatepicker


【解决方案1】:

为什么你要通过动作来改变键盘!

只需在viewDidLoad 中添加您的代码:

var datePickerView  : UIDatePicker = UIDatePicker()
datePickerView.datePickerMode = UIDatePickerMode.Time
StartTimeTextField.inputView = datePickerView
datePickerView.addTarget(self, action: Selector("handleDatePicker:"), forControlEvents: UIControlEvents.ValueChanged)

var datePickerView  : UIDatePicker = UIDatePicker()
datePickerView.datePickerMode = UIDatePickerMode.Time
EndTimeTextField.inputView = datePickerView
datePickerView.addTarget(self, action: Selector("handleDatePicker2:"), forControlEvents: UIControlEvents.ValueChanged)

并删除像

这样的方法
@IBAction func

【讨论】:

  • 由于某种原因没有发生任何事情。 UIDatePicker 根本没有出现
  • @TripPhillips 你删除了这个动作吗?来自文本字段?
  • @TripPhillips 这是完美的,如果您使用的是模拟器,那么有时键盘不会出现。所以,请按 COMMAND+K。
  • @TripPhillips 我已经更新了答案。希望对你有帮助
  • 我正在使用我的 iPhone。我今晚想不通,但如果代码完美的话,希望我能在早上搞清楚。谢谢您的帮助。每当我弄清楚时,我都会告诉你。
猜你喜欢
  • 2010-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多