2016-04-07 238 views
-1

我在UITextField上點擊功能有一些問題。我已經在這個例子中實現了datepicker:http://blog.apoorvmote.com/change-textfield-input-to-datepicker/編輯點擊動作

和我有點擊行動的問題。我添加了3個字段。只有一個字段通過按下來顯示日期選擇器。我需要在我的UITextfield上點擊兩次才能顯示日期選擇器。我做錯了什麼,以及如何解決它?我想單擊UITextfeild顯示日期選擇器。

代碼:

@IBAction func textFieldEditing(sender: UITextField) { 
    let datePickerView:UIDatePicker = UIDatePicker() 
    datePickerView.datePickerMode = UIDatePickerMode.Date 
    sender.inputView = datePickerView 
    datePickerView.addTarget(self, action: #selector(RegisterViewController.datePickerValueChanged), forControlEvents: UIControlEvents.ValueChanged) 
} 

func datePickerValueChanged(sender:UIDatePicker) { 
    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle 
    dateFormatter.timeStyle = NSDateFormatterStyle.NoStyle 
    txtBirthday.text = dateFormatter.stringFromDate(sender.date) 
} 
+1

請顯示一些代碼,那麼只有我們可以指出這個問題。 –

+0

結束了代碼 – Dim

回答

1

我想你錯過了一步,同時設置操作。在下面的步驟事件應設置爲編輯確實開始

再次添加文本字段作爲行動&確保設置「事件」的「編輯確實開始」

enter image description here

或者你可以可以實施,下面一個:

設置一個標籤到你的dateTextField來說10.你可以在故事板本身做到這一點。從文本字段中刪除操作事件。

func textFieldShouldBeginEditing(textField: UITextField) -> Bool { 
    if(textField.tag == 10) { 
     self.view.endEditing(true) 
     let datePickerView:UIDatePicker = UIDatePicker() 
     datePickerView.datePickerMode = UIDatePickerMode.Date 
     textField.inputView = datePickerView 
     datePickerView.addTarget(self, action: #selector(RegisterViewController.datePickerValueChanged), forControlEvents: UIControlEvents.ValueChanged) 
    }  
    return true; 
} 
+0

非常感謝! – Dim