Observing change in UIDatePicker Observing change in UIDatePicker ios ios

Observing change in UIDatePicker


You need to add to your UIDatePicker the UIControlEventValueChanged event to handle date changes:

[myDatePicker addTarget:self action:@selector(dateIsChanged:) forControlEvents:UIControlEventValueChanged];

Then the implementation:

- (void)dateIsChanged:(id)sender{     NSLog(@"Date changed");}


Go to IB and drag from the UIDatePicker to your .h file. Then selectenter image description here

Handle this however you want in your .m file; XCode will add the method below for you.

enter image description here


Swift 4.2 | Xcode 10.1

@objc func handleDatePicker(_ datePicker: UIDatePicker) {    textField.text = datePicker.date.formatted}override func viewDidLoad() {    super.viewDidLoad()    datePicker.addTarget(self, action: #selector(handleDatePicker), for: .valueChanged)}

extension Date {    static let formatter: DateFormatter = {        let formatter = DateFormatter()        formatter.dateFormat = "EEEE, dd MMM yyyy HH:mm:ss Z"        return formatter    }()    var formatted: String {        return Date.formatter.string(from: self)    }}