Ios 如何创建日期选择器扩展
我正在尝试将附加到文本字段的日期选择器代码移动到扩展名中。我正在努力重构@objc代码。我不确定如何在doneButtonPressed代码中引用textfield和datepickerIos 如何创建日期选择器扩展,ios,swift,datepicker,Ios,Swift,Datepicker,我正在尝试将附加到文本字段的日期选择器代码移动到扩展名中。我正在努力重构@objc代码。我不确定如何在doneButtonPressed代码中引用textfield和datepicker extension UIViewController { func datePicker(dateValue: UITextField) { let datePicker = UIDatePicker() datePicker.datePickerMode = .
extension UIViewController {
func datePicker(dateValue: UITextField) {
let datePicker = UIDatePicker()
datePicker.datePickerMode = .date
let toolbar = UIToolbar()
toolbar.sizeToFit()
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(dateDonePressed))
toolbar.setItems([doneButton], animated: false)
dateValue.inputAccessoryView = toolbar
dateValue.inputView = datePicker
}
@objc func dateDonePressed() {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .none
self.dateValue.text = dateFormatter.string(from: self.datePicker.date)
self.view.endEditing(true)
}
}
我只想在类中添加变量:
class ViewController {
var textField: UITextField!
var datePicker: UIDatePicker!
override var viewDidLoad() {
super.viewDidLoad()
...// either set up textField here or in the extension
datePicker.inputView = datePicker
}
extension ViewController {
func datePicker(dateValue textField: UITextField){
// if you decided to set the textfield in the extension, then:
self.textField = textField
}
}
我不知道是谁调用了日期选择器(dateValue),但是如果可以从那里访问文本字段,那么可能应该从其他地方设置和配置文本字段。只是为了将来:类名大写,方法/函数名小写。