UIDatePicker 点击完成并显示文本

UIDatePicker Click done and display text

我想在 UIPicker 弹出窗口后获取日期,然后立即单击完成按钮以在 "dobTxt.text" 上显示日期而无需滚动,select 来自 UIDatePicker 的日期。怎么做?

   func doneBtnForDate(){

    if (dobTxt.text == "Please select your DOB"){
         //let selectedDate = How to get picker date without scroll it?
         dobTxt.text = selectedDate
    }

    picker.isHidden = true
    toolBar2.isHidden = true
    datePicker.isHidden = true
}

像下面这样更改您的doneBtnForDate

func doneBtnForDate(){

    if (dobTxt.text == "Please select your DOB"){
         //let selectedDate = How to get picker date without scroll it?
         dobTxt.text = selectedDate
    }

   // IF you want to change date formatting then you need to change in "DateFormatter" below 
   let dateFormatter = DateFormatter()
    dateFormatter.dateStyle = .full
    dateFormatter.timeStyle = .full
    let strDate = dateFormatter.string(from: yourPicker.date)  
    dobTxt.text = strDate

    picker.isHidden = true
    toolBar2.isHidden = true
    datePicker.isHidden = true
} 

这是 objective c 代码。

     [datepicker addTarget:self  action:@selector(DateChange:)
            forControlEvents:UIControlEventValueChanged];

    //method for change date

    - (void)DateChange:(id)sender
{
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"dd-MM-yyyy"];
        label.text = [dateFormatter stringFromDate:datepicker.date];
        date.text=strDate;
}

能否在viewDidLoad方法中设置dobTxt.inputView = picker

对我来说效果很好。希望对你有帮助。

请试试这个:

func doneBtnForDate()
{
    if (dobTxt.text == "Please select your DOB")
    {
         let dateFormatter = DateFormatter()
         dateFormatter.dateFormat = "dd/MM/yyyy"
         dobTxt.text = dateFormatter.string(from: datePicker.date)
    }

    picker.isHidden = true
    toolBar2.isHidden = true
    datePicker.isHidden = true
}