I'm trying to let the user pick a date and let it display in a text field. I've found so many answers online but none of them seem to work. I don't if they are outdated. I'm getting an error on "datePickerView.addTarget" in the selector part. When I run the app, I tap on the text field and the keyboard appears which is what I want. But the app crashes as soon as I change the date.
Any help would be really appreciated!
@IBAction func dateFieldEditing(sender: UITextField) {
let datePickerView:UIDatePicker = UIDatePicker()
datePickerView.datePickerMode = UIDatePickerMode.Date
sender.inputView = datePickerView
datePickerView.addTarget(self, action:Selector("handleDatePicker"),forControlEvents: UIControlEvents.ValueChanged)
}
func handleDatePicker (sender: UIDatePicker){
let formatter = NSDateFormatter()
formatter.dateStyle = .LongStyle
dateField.text = formatter.stringFromDate(sender.date)
}
The following works, assuming that you have a UITextField and UIDatePicker bound as IBOutlets via Interface Builder. Setting sender.inputView was unnecessary.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var datePicker: UIDatePicker?
@IBOutlet weak var textField: UITextField?
func handleDatePicker (sender: UIDatePicker) {
let formatter = NSDateFormatter()
formatter.dateStyle = .LongStyle
textField!.text = formatter.stringFromDate(sender.date)
}
override func viewDidLoad() {
super.viewDidLoad()
self.datePicker!.datePickerMode = UIDatePickerMode.Date
datePicker!.addTarget(self, action:#selector(handleDatePicker(_:)), forControlEvents: UIControlEvents.ValueChanged)
}
}
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments