我有两个UITextFields
(但最终会添加更多),它们的创建方式类似于
@IBOutlet weak var startField: UITextField!
@IBOutlet weak var finishField: UITextField!
我希望两者的输入视图均为UIDatePicker
和datePickerMode = .time
的{{1}}。
我该如何实现?
我已经找到了如何正确设置格式的方法,但是我不确定如何使两个.dateFormat = "HH:mm"
独立工作,到目前为止,我尝试过的所有操作都只影响第一个字段(如下所示,因为我不确定在这种情况下如何使用标签。
(例如,即使选择finishField,startField也是已编辑/填充的那个)。
UITextFields
我尝试使用标签,但它似乎仍然只影响startField。
答案 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
}
如果有很多文本字段,则可以将它们存储在数组中并循环播放,并检查哪个处于活动状态。