UIDatePicker with “done” button

后端 未结 5 1339
闹比i
闹比i 2021-01-01 20:34

I need to add a \"done\" button to my date picker like in this image:

\"enter

5条回答
  •  余生分开走
    2021-01-01 21:14

    With Swift

    // Place this code inside your ViewController or where you want ;)
    
    var txtField: UITextField = UITextField(frame: CGRectMake(0, 0, 200, 50))
    
    // the formatter should be "compliant" to the UIDatePickerMode selected below
    var dateFormatter: NSDateFormatter {
        let formatter = NSDateFormatter()
        // customize the locale for the formatter if you want
        //formatter.locale = NSLocale(localeIdentifier: "it_IT")
        formatter.dateFormat = "dd/MM/yyyy"
        return formatter
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
        // date picker setup
        let datePickerView:UIDatePicker = UIDatePicker()
    
        // choose the mode you want
        // other options are: DateAndTime, Time, CountDownTimer
        datePickerView.datePickerMode = UIDatePickerMode.Date
    
        // choose your locale or leave the default (system)
        //datePickerView.locale = NSLocale.init(localeIdentifier: "it_IT")
    
        datePickerView.addTarget(self, action: "onDatePickerValueChanged:", forControlEvents: UIControlEvents.ValueChanged)
        txtField.inputView = datePickerView
    
        // datepicker toolbar setup
        let toolBar = UIToolbar()
        toolBar.barStyle = UIBarStyle.Default
        toolBar.translucent = true
        let space = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
        let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Done, target: self, action: "doneDatePickerPressed")
    
        // if you remove the space element, the "done" button will be left aligned
        // you can add more items if you want
        toolBar.setItems([space, doneButton], animated: false)
        toolBar.userInteractionEnabled = true
        toolBar.sizeToFit()
    
        txtField.inputAccessoryView = toolBar
    
        self.view.addSubview(txtField)
    }
    
    func doneDatePickerPressed(){
        self.view.endEditing(true)
    }
    
    func onDatePickerValueChanged(datePicker: UIDatePicker) {
        self.txtField = dateFormatter.stringFromDate(datePicker.date)
    }
    

提交回复
热议问题