I'm using date picker and when I open by default it will be the current date. But now I want to display placeholder date also as current date.
private func showDatePicker(_ sender: UITextField){
datePickerView.datePickerMode = UIDatePicker.Mode.date
sender.inputView = datePickerView
let toolbar = UIToolbar();
toolbar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(donedatePicker));
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelDatePicker));
toolbar.setItems([doneButton,spaceButton,cancelButton], animated: false) sender.inputAccessoryView = toolbar sender.inputView = datePickerView;
}
@objc func donedatePicker(){
let formatter = DateFormatter()
formatter.dateFormat = "dd/MM/yy"
if (selectedDateField == 1){
datePickerView.minimumDate = NSDate() as Date
sOdateTxt.text = formatter.string(from:datePickerView.date)
sOdateTxt.placeholder=formatter.string(from:datePickerView.date)
} else if (selectedDateField == 2){
datePickerView.minimumDate = NSDate() as Date
sRdateTxt.text = formatter.string(from:datePickerView.date)
} else if (selectedDateField == 3){
datePickerView.minimumDate = NSDate() as Date
sRecordedTxt.text = formatter.string(from:datePickerView.date)
}
self.view.endEditing(true)
}
@objc func cancelDatePicker(){
self.view.endEditing(true)
}
placeholder date should be as the current date
Set placeholder for the textfields in viewDidLoad
method with current date using Date()
override func viewDidLoad() {
super.viewDidLoad()
formatter.dateFormat = "dd/MM/yy"
sOdateTxt.placeholder = formatter.string(from: Date())
sRdateTxt.text = formatter.string(from: Date())
sRecordedTxt.text = formatter.string(from: Date())
}
You don't need to use NSDate() as Date
to get current date. You can use Date()