2017-07-31 85 views
-4

當點擊這是我的代碼如何顯示日期選擇器的文本框

- @IBOutlet weak var txt1: UITextField! 

    @IBOutlet weak var txt2: UITextField! 

    @IBOutlet weak var txt3: UITextField! 

    @IBOutlet weak var txt4: UITextField! 

    @IBOutlet weak var txt5: UITextField! 

    @IBOutlet weak var txt6: UITextField! 

    @IBOutlet weak var txt7: UITextField! 

    @IBOutlet weak var picker: UIPickerView! 


    var category = ["Male", "Female", "Others"] 

    let datePicker = UIDatePicker() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     picker.isHidden = true 

     txt3.delegate = self 

     self.txt3.inputView = picker 

     //txt3.inputView = category[row] 
    } 

    // returns the # of rows in each component.. 
    func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int{ 
     return category.count 
    } 

    func pickerView(pickerView: UIPickerView!, titleForRow row: Int, forComponent component: Int) -> String! { 
     return category[row] 
    } 

    func pickerView(pickerView: UIPickerView!, didSelectRow row: Int, inComponent component: Int) 
    { 
     txt3.text = category[row] 
     // category.isHidden = true; 
    } 

    func textFieldShouldBeginEditing(textField: UITextField) -> Bool { 
     if textField == txt3 { 
      //resignFirstResponder() 
      //picker.isHidden = true 
       } 
     return true 
     } 
    } 


    @IBAction func txt3(_ sender: Any) { 
     func showDatePicker(){ 
      //Formate Date 
      datePicker.datePickerMode = .date 


      //ToolBar 
      let toolbar = UIToolbar(); 
      toolbar.sizeToFit() 

      //done button & cancel button 
      let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.bordered, target: self, action: 
    Selector(("donedatePicker"))) 
      //let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil) 
      // let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.bordered, target: self, action: 
    Selector("cancelDatePicker")) 
      toolbar.setItems([doneButton], animated: false) 

      // add toolbar to textField 
      txt3.inputAccessoryView = toolbar 
      // add datepicker to textField 
      txt3.inputView = datePicker 

     } 

     func donedatePicker(){ 
      //For date formate 
      let formatter = DateFormatter() 
      formatter.dateFormat = "dd/MM/yyyy" 
      txt3.text = formatter.string(from: datePicker.date) 
      //dismiss date picker dialog 
      self.view.endEditing(true) 
     } 

     func cancelDatePicker(){ 
      //cancel button dismiss datepicker dialog 
      self.view.endEditing(true) 
     } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

塊引用

+1

什麼問題ü面臨 –

+0

並不作品 –

回答

1
override func viewDidLoad(){ 
    super.viewDidLoad() 
    picker.isHidden = true 
    txt3.delegate = self 
    //self.txt3.inputView = picker // don't do this 
    self.txt3.inputView = datePicker // do like this. 
    let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.doneButton)) 
    let spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil) 

    let cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.doneButton) 
    toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false) 
    toolBar.isUserInteractionEnabled = true 
    txt3.inputAccessoryView = toolBar 

} 

func doneButton(){ 
    let selectedDate = datePicker.date 
    print(selectedDate) 
    txt3.resignFirstResponder() 
} 

它會自動打開日期選擇器。

+0

它不是選擇日期兄弟 –

+0

@SeasiaCreativeCrew現在你可以嘗試更新的答案它也會選擇一個日期也。在這個即時消息給予和取消同樣的行動,你可以管理自己。 –

0
txt3.inputView = picker 

,並刪除

picker.isHidden = true 

這應該是訣竅!

+0

什麼都沒有發生,當我點擊txt3 –

0

第一,你加這個..

txt3.inputView = picker 

然後添加

func textFieldShouldBeginEditing(textField: UITextField) -> Bool { 
    if textField == txt3 { 
      picker.isHidden = false 
    } 
    else { 
     picker.isHidden = true 
    } 
    return true 
} 
+0

的問題是有關日期選擇器不pickerview它崩潰了,他在這個問題同時使用相同的上文本框, –

+0

@ Anbu.Karthik用戶使用uipickerview只有一個文本域 –

相關問題