2016-04-07 37 views
-1

UITextField'ta tıklatılmış işlevle ilgili bir sorunum var. Bu örnekte olduğu gibi datepicker'ı uygulamıştım: http://blog.apoorvmote.com/change-textfield-input-to-datepicker/Tıklatılan eylemi düzenleyin

Tıklatılmış eylemde sorun yaşıyorum. 3 alan ekledim. Sadece bir alan, tarihçeyi basılı tutarak gösterir. Ve tarihçeyi göstermek için UITextfield'ımda iki kez tıklamam gerekiyor. Neyi yanlış yaptım ve nasıl düzelttim? UITextfeild'in tek tıklatmayla tarihçiyi göstermek istiyorum.

Kodu:

@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

Lütfen bir kod gösteriniz, sonra yalnızca konuyu işaret edebiliriz. –

+0

Kodu ekledim – Dim

cevap

1

Ben eylem ayarlarken adımı atlamış düşünüyorum. Aşağıdaki adım Olay

başlayın mü Düzenleme olarak ayarlanması gerekir ise eylem & Alternatif

enter image description here

yapabilirsiniz “Düzenleme başlayın mı” dan “Etkinlik” ayarlamak için emin olun Yine textfield'ı eklemek can uygulanması için aşağıda:

DateTextField öğenize bir etiket koyun. Bunu 10. storyboard'da yapabilirsiniz. Eylem olayını metin alanından kaldırın.

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

Çok teşekkür ederim! – Dim