В моем приложении у меня есть текстовое поле, чтобы добавить дату рождения. Я добавляю всплывающее окно datePicker, когда пользователь нажимает на текстовое поле. datePicker правильно и после того, как пользователь выберет дату, отображаемую в текстовом поле. Проблема заключается в выборе даты, когда datePicker не закрывается.DatePicker не закрывается после крана
Это мой код:
class BController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var dateOfBirth: UITextField!
let datePicker = UIDatePicker()
func textFieldShouldReturn(textField: UITextField) -> Bool {
textField.resignFirstResponder()
// self.view.endEditing(true)
return true
}
func textFieldDidBeginEditing(textField: UITextField){
if textField == dateOfBirth{
// let datePicker = UIDatePicker()
datePicker.datePickerMode = UIDatePickerMode.Date
datePicker.backgroundColor = UIColor.blackColor()
datePicker.setValue(UIColor.whiteColor(), forKey: "textColor")
textField.inputView = datePicker
datePicker.addTarget(self, action: "datePickerChanged:", forControlEvents: .ValueChanged)
}
}
func datePickerChanged(sender: UIDatePicker){
let formatter = NSDateFormatter()
formatter.dateFormat = "dd-MM-yyyy"
// formatter.dateStyle = .ShortStyle
// formatter.timeStyle = .NoStyle
dateOfBirth.text = formatter.stringFromDate(sender.date)
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
print("touch happened")
self.view.endEditing(true)
}
override func viewDidLoad() {
super.viewDidLoad()
dateOfBirth.delegate = self
text1.delegate = self
text2.delegate = self
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Я получил выход консоли как:
непризнанного селектор отправляется например 0x7 Нагрузочным приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: «- [BController getCalendar:]: непризнанный селектор, отправленный в пример 0x78789050 '
Как решить эту проблему? Я использую Xcode 6.2. Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Пожалуйста, покажите нам код в вашей функции getCalendar – Asike
@Asike У меня нет метода, называемого getCalendar. Я новичок в разработке iSO, и я последовал за учебником для этого процесса. Я тоже не вижу никакого метода, называемого getCalendar. Я не знаю, откуда эта ссылка на ошибку. –