2016-07-06 15 views
0

私は、ユーザが日付を選択してテキストフィールドに表示させようとしています。私は多くの答えをオンラインで見つけましたが、どれもうまくいかないようです。私は彼らが時代遅れの場合はありません。セレクタ部分の "datePickerView.addTarget"にエラーが表示されます。アプリケーションを実行すると、テキストフィールドをタップすると、キーボードが表示され、これは私が望むものです。しかし、私は日付を変更するとすぐにアプリケーションがクラッシュします。TextFieldにDatePickerを入力する

本当にありがとうございます。

@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) 
} 
+0

構文は少し日付が入ります。あなたのコードは大体は問題ありませんが、 'datePickerView.addTarget(self、action:#selector(self.handleDatePicker)、forControlEvents:UIControlEvents.ValueChanged) 'でなければなりません。' #selector(...)不平を言う。 – beyowulf

+0

@beyowulf Perfect !!出来た。どうもありがとう。 –

答えて

0

次は、UITextFieldとUIDatePickerがInterface Builder経由でIBOutletsとしてバインドされていると仮定して動作します。 sender.inputViewを設定する必要はありませんでした。

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) 
    } 
} 
関連する問題