キーボードの日付ピッカー表示が必要です。私はUITextField拡張を使用してこれをやっています。Swiftのテキストフィールドに日付を表示するには、日付ピッカー(または日付のみ)を渡すにはどうすればよいですか?
マイコード:
extension UITextField {
//... other functions
func showDatePicker(){
let datePicker = UIDatePicker()
datePicker.datePickerMode = .date
let toolbar = UIToolbar();
toolbar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Pronto", style: UIBarButtonItemStyle.plain, target: self, action: #selector(UITextField.doneDatePicker(_:)))
let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancelar", style: UIBarButtonItemStyle.plain, target: self, action: #selector(UITextField.donePicker))
toolbar.setItems([cancelButton,spaceButton,doneButton], animated: false)
self.inputAccessoryView = toolbar
self.inputView = datePicker
}
@objc func doneDatePicker(_ datePicker: UIDatePicker){
let formatter = DateFormatter()
formatter.dateFormat = "dd/MM/yyyy"
self.text = formatter.string(from: datePicker.date)
self.endEditing(true)
}
}
私の問題は、私は「プロント」ボタンとdoneDatePickerが実行される機能をタップしたときです。私は、テキストフィールドに日付を表示するUIDatePicker(または単に日付)を渡す必要があるが、私はこのエラーを取得:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIBarButtonItem date]: unrecognized selector sent to instance 0x103488850'
どのように私はこの問題を解決することができますか?
リンクされた質問は重複していました。 OPはターゲット/アクションセレクタを指定する方法を守りました – vadian
はい、解決策はリンクされた質問にありませんでした –