Swift UIDatePicker 不显示初始值

标签 swift uitextfield uidatepicker

我有一个 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 更改为其他内容,但仍然无法正常工作。我怎样才能实现这种行为?谢谢。

最佳答案

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

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

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

关于Swift UIDatePicker 不显示初始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44596971/

相关文章:

ios - UIViewControllerHierarchyInconsistency 仅在 iOS 8 和 Xcode 6 中崩溃应用程序

iphone - 定时器模式下的 DatePicker - 如何获取值

ios - 无法在 Swift 中对 UITableView 调用 "registerClass"

ios - UITextField becomeFirstResponder 在动态单元格中不起作用

json - Alamofire POST JSON 数组

ios - 检查 textField.text isEqualToString

ios - 自定义表格 View 单元格中的 UITextField。点击单元格/文本字段时显示选取器 View

ios - 工具栏完成按钮操作在 UIDatePicker 上不起作用

ios - 如何在 Swift 中跳过 for 循环中的索引

swift : Expression was too complex to be solved in reasonable time; consider breaking the expression into distinct sub-expressions