私のアプリケーションでは、生年月日を追加するテキストフィールドがあります。ユーザーがテキストフィールドをタップすると、popupに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.
}
}
として、私はコンソール出力を得た:認識されていないセレクタがキャッチされない例外が原因アプリ 'NSInvalidArgumentException'、理由の終了インスタンスを0x7に送ら
:「 - [BController getCalendar:]:インスタンスに送信された認識できないセレクタ0x78789050 '
この問題を解決するにはどうすればよいですか?私はXcode 6.2を使用しています。より多くの情報が必要な場合は、私に知らせてください。ドキュメントとして
getCalendar関数でコードを表示してください – Asike
@私はgetCalendarというメソッドはありません。私はiSOの開発が初めてで、このプロセスのチュートリアルに従いました。そこにはgetCalendarというメソッドもありません。私はこのエラー参照がどこからわかるのかわかりません。 –