UIDatePicker 作为 UITextField 的输入视图

Sur*_*evi 0 uidatepicker uitextfield ios swift

在我的代码中,我使用 Datepicker 作为 Textfield 的 Inputview

self.tFPeriodEndCurrent.inputView = self.datePicker
Run Code Online (Sandbox Code Playgroud)

文本字段委托将不起作用,因为文本字段不可编辑。

当用户单击文本字段时,我需要将文本字段中的文本(日期)更新为 UIPicker 输入视图

//assume textfield contains 20/2/2019 , that should reflect in UIdatepicker when user Tap on textfield. 
how to acheive that! any help
Run Code Online (Sandbox Code Playgroud)

小智 9

在 Swift 5 中,Xcode 12 使用以下内容:

if #available(iOS 14, *) {
    datePicker.preferredDatePickerStyle = .wheels
}
Run Code Online (Sandbox Code Playgroud)

它将选择器设置为与 iOS 13 中的相同。


Sat*_*ran 6

如果你想带来相同的 UIPickerView 外观和感觉试试这个,

class ViewController: UIViewController {

@IBOutlet weak var dateField: UITextField!
var datePicker :UIDatePicker!

   override func viewDidLoad() {
       super.viewDidLoad()
       datePicker = UIDatePicker.init(frame: CGRect(x: 0, y: 0, width: view.bounds.size.width, height: 200))
       datePicker.addTarget(self, action: #selector(self.dateChanged), for: .allEvents)
       dateField.inputView = datePicker
       let doneButton = UIBarButtonItem.init(title: "Done", style: .done, target: self, action: #selector(self.datePickerDone))
       let toolBar = UIToolbar.init(frame: CGRect(x: 0, y: 0, width: view.bounds.size.width, height: 44))
       toolBar.setItems([UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil), doneButton], animated: true)
       dateField.inputAccessoryView = toolBar
   }

   @objc func datePickerDone() {
       dateField.resignFirstResponder()
   }

   @objc func dateChanged() {
       dateField.text = "\(datePicker.date)"
   }

}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述