Example with two text fields:
let fromDate = UITextField()
let toDate = UITextField()
let datePicker = UIDatePicker()
let dateFormatter = DateFormatter()
...
dateFormatter.dateFormat = "MM-dd-yyyy"
datePicker.datePickerMode = UIDatePicker.Mode.date
datePicker.addTarget(self, action: #selector(<YouViewController>.datePickerValueChanged(sender:)), for: UIControl.Event.valueChanged)
...
let date = Date()
fromDate.text = dateFormatter.string(from: date)
fromDate.textAlignment = NSTextAlignment.left
fromDate.inputView = datePicker
fromDate.delegate = self
let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 44))
let doneBtn = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(dateSelected))
let cancelBtn = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(dismissPicker))
toolbar.setItems([cancelBtn, doneBtn], animated: false)
fromDate.inputAccessoryView = toolbar
toDate.text = dateFormatter.string(from: date)
toDate.textAlignment = NSTextAlignment.left
toDate.inputView = datePicker
toDate.delegate = self
...
@objc func datePickerValueChanged(sender: AnyObject) {
if (fromDate.isFirstResponder) {
fromDate.text = dateFormatter.string(from: datePicker.date)
} else {
toDate.text = dateFormatter.string(from: datePicker.date)
}
}
// UITextFieldDelegate
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return false
}
No hay comentarios:
Publicar un comentario