Я хочу отображать дату заполнителя в качестве текущей даты - PullRequest
1 голос
/ 01 июня 2019

Я использую средство выбора даты, и при открытии по умолчанию это будет текущая дата. Но теперь я хочу отображать дату заполнителя также в качестве текущей даты.

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)
}

дата-заполнитель должна быть текущей датой

Ответы [ 2 ]

2 голосов
/ 01 июня 2019

Установить заполнитель для текстовых полей в методе viewDidLoad с текущей датой, используя 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())
}

Вам не нужно использовать NSDate() as Date, чтобы получить текущую дату. Вы можете использовать Date()

0 голосов
/ 01 июня 2019
extension Date {
    func toString(format:String) -> String {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = format
        return dateFormatter.string(from: self)
    }
}

Использование

yourtextfield.placeholder = Date().toString(format:"dd-MM-yyyy")

...