对多个UITextField使用UIDatePicker

时间:2018-11-28 12:23:13

标签: ios swift uitextfield uidatepicker

我有两个UITextFields(但最终会添加更多),它们的创建方式类似于

@IBOutlet weak var startField: UITextField!
@IBOutlet weak var finishField: UITextField!

我希望两者的输入视图均为UIDatePickerdatePickerMode = .time的{​​{1}}。

我该如何实现?

我已经找到了如何正确设置格式的方法,但是我不确定如何使两个.dateFormat = "HH:mm"独立工作,到目前为止,我尝试过的所有操作都只影响第一个字段(如下所示,因为我不确定在这种情况下如何使用标签。

(例如,即使选择finishField,startField也是已编辑/填充的那个)。

UITextFields

我尝试使用标签,但它似乎仍然只影响startField。

1 个答案:

答案 0 :(得分:2)

您可以检查选择器中哪个文本字段处于活动状态,并相应地更改文本。

@objc func datePickerValueChanged(sender: UIDatePicker) {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "HH:mm"

    if startTextField.isFirstResponder {
        startField.text = dateFormatter.string(from: sender.date)
    } else if finishTextField.isFirstResponder {
        finishTextField.text = dateFormatter.string(from: sender.date)
    }
    // Handle the other cases if any
}

如果有很多文本字段,则可以将它们存储在数组中并循环播放,并检查哪个处于活动状态。