ios - 具有相同日期选择器的两个文本字段

标签 ios swift swift3 uidatepicker

我有两个要输入时间的文本字段。 我已经让其中一个文本字段工作,因此 inputView 是一个日期选择器,但是,我不知道是否有一种简单的方法来更改我的代码,以便另一个文本字段也有一个日期选择器作为输入字段。

这是我的代码:

func createDatePicker(){
    let toolbar = UIToolbar()
    toolbar.sizeToFit()

    //done button
    let done = UIBarButtonItem(barButtonSystemItem:.done, target: nil, action: #selector(donePressed))
    toolbar.setItems([done], animated: false)

    fromTextField.inputAccessoryView = toolbar
    fromTextField.inputView = picker


    picker.datePickerMode = .time
    picker.minuteInterval = 15

}
@objc func donePressed(){
    let formatter = DateFormatter()
    formatter.dateStyle = .none
    formatter.timeStyle = .short
    let dateString = formatter.string(from: picker.date)

    fromTextField.text = "\(dateString)"
    self.view.endEditing(true)

}

除了复制这两个函数之外,让这段代码也适用于 toTextField 的最佳方法是什么?

最佳答案

对于创建两个具有与 inputView 相同的 pickerView 的文本字段,@CZ54 的答案是正确的,即

func createDatePicker(forField field : UITextField){
    let toolbar = UIToolbar()
    toolbar.sizeToFit()

    //done button
    let done = UIBarButtonItem(barButtonSystemItem:.done, target: nil, action: #selector(donePressed))
    toolbar.setItems([done], animated: false)

    field.inputAccessoryView = toolbar
    field.inputView = picker


    picker.datePickerMode = .time
    picker.minuteInterval = 15

}

//later
self.createDatePicker(forField: fromTextField)
self.createDatePicker(forField: toTextField)

要根据事件文本字段从 pickerView 获取数据,您必须创建一个 UITextField 类型的变量并将其分配如下:

var activeTextField: UITextField!

func textFieldDidBeginEditing(_ textField: UITextField) {
     activeTextField = textField
}

只要在pickerView中选择行,通过follow你就可以执行相关操作

if activeTextField == fromTextField {
     //action
} else if activeTextField == toTextField {
     //action
}

关于ios - 具有相同日期选择器的两个文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47529158/

相关文章:

ios - 如何在iOS中强制将音频输出路由到蓝牙A2DP?

ios - 使用方法/函数时最好的方法是什么

iOS - 将文件移动到视频文件夹

ios - 将 UITextField 添加到 ScrollView

swift - 为什么在传递给具有可选类型的函数参数时强制使用 nil 的 uwrapped 类型不会崩溃?

ios - 获取自定义单元格中标签的高度以用于主视图 Controller 中的 heightForRowAt

ios - Gmail 仅在 iOS 上无法扩展到 100% 宽度

swift - 使用 AVPlayer 时,如何检测用户何时快速取消视频静音

swift - 模式匹配作为 swift 中的函数表达式

ios - Swift 3 中的不安全字节