iPhone display date picker on UITextField touch

后端 未结 8 1475
一生所求
一生所求 2020-11-30 00:08

I followed this thread: datepicker by clicking on textfield

I imported both of the following protocols:

@interface ViewController : UIViewController&         


        
8条回答
  •  南笙
    南笙 (楼主)
    2020-11-30 00:51

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

提交回复
热议问题