【问题标题】:Swift UIDatePicker doesn't show initial valueSwift UIDatePicker 不显示初始值
【发布时间】:2017-06-16 19:51:20
【问题描述】:

我有一个UITextField,它使用UIDatePicker 作为输入法:

lazy var starttime_text_field: UITextField = {
    let text_field = UITextField()
    ...

    let date_picker = UIDatePicker()
    date_picker.minimumDate = Date()
    date_picker.maximumDate = Calendar.current.date(byAdding: .day, value: 1, to: Date())

    date_picker.datePickerMode = .dateAndTime
    date_picker.addTarget(self, action: #selector(handleStarttimePicker(sender:)), for: .valueChanged)
    text_field.inputView = date_picker

    ...
    return text_field
}()

当我选择文本字段时,我希望选择器中显示的第一个日期显示为文本字段的文本。但是,这不会发生;只有当我滚动选择器时,选择器的值才会出现在文本字段中。我已经尝试将.valueChanged 更改为其他东西,但我仍然没有让它工作。我怎样才能实现这种行为?谢谢。

【问题讨论】:

    标签: swift uitextfield uidatepicker


    【解决方案1】:

    您可能应该在编辑开始和结束时使用文本字段委托方法来设置值。

     - (void)textFieldDidBeginEditing:(UITextField *)textField;
     - (void)textFieldDidEndEditing:(UITextField *)textField;
    

    仅当值更改时才会触发选择器事件。因此,在设置文本字段或更改编辑模式时,必须更新默认/选定值。

    【讨论】:

      猜你喜欢
      • 2021-04-19
      • 2019-11-27
      • 2017-08-20
      • 2018-02-12
      • 2015-10-21
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多