I followed this thread: datepicker by clicking on textfield
I imported both of the following protocols:
@interface ViewController : UIViewController&
@JRo solution works great!
Here is my updated code in Swift 3:
func textFieldDidBeginEditing(_ textField: UITextField) {
self.activeTextField = textField
// Create a date picker for the date field.
let picker = UIDatePicker()
picker.datePickerMode = .date
picker.addTarget(self, action: #selector(updateDateField(sender:)), for: .valueChanged)
// If the date field has focus, display a date picker instead of keyboard.
// Set the text to the date currently displayed by the picker.
textField.inputView = picker
textField.text = formatDateForDisplay(date: picker.date)
}
// Called when the date picker changes.
func updateDateField(sender: UIDatePicker) {
activeTextField?.text = formatDateForDisplay(date: sender.date)
}
// Formats the date chosen with the date picker.
fileprivate func formatDateForDisplay(date: Date) -> String {
let formatter = DateFormatter()
formatter.dateFormat = "dd MMM yyyy"
return formatter.string(from: date)
}