Swift: using UIDatePicker as UITextField inputView not updating

前端 未结 3 1737
-上瘾入骨i
-上瘾入骨i 2020-12-14 08:07

I have a textfield and when it is selected a datepicker pops up instead of a keyboard, but it only updates with todays date the first time. The user changes the date, but th

3条回答
  •  伪装坚强ぢ
    2020-12-14 09:01

    Your handleDatePicker method is instantiating a new DatePicker each time it's called. You need to add a parameter to the function to pass in the sender (the DatePicker created in func dp)

    @IBAction func dp(_ sender: UITextField) {
        let datePickerView = UIDatePicker()
        datePickerView.datePickerMode = .date
        sender.inputView = datePickerView
        datePickerView.addTarget(self, action: #selector(handleDatePicker(sender:)), for: .valueChanged)
    }
    
    @objc func handleDatePicker(sender: UIDatePicker) {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd MMM yyyy"
        textfieldjobdate.text = dateFormatter.string(from: sender.date)
    }
    

提交回复
热议问题