У меня есть два текстовых поля, и оба они вызывают выбор даты, когда на них нажимает пользователь. У меня есть средство выбора даты с кнопкой «Готово», и я хочу показать время, которое я выбираю из средства выбора даты, в выбранном текстовом поле. Итак, как я могу передать выбранное текстовое поле в качестве аргумента в параметре селектора моего UIBarButtonItem. Ниже представлен весь код. Пожалуйста помоги. Спасибо!
@IBOutlet weak var startingTimeTxt: UITextField!
@IBOutlet weak var endingTimeTxt: UITextField!
let datePickerTime = UIDatePicker()
override func viewDidLoad() {
super.viewDidLoad()
startingTimeTxt.delegate = self
endingTimeTxt.delegate = self
datePickerTime.datePickerMode = .time
}
func createDatePicker(textField: UITextField) {
//toolbar
let toolbar = UIToolbar()
toolbar.sizeToFit() //will fit to full screen
//bar done button
let doneBtn = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(donePressed(textField: )))
//remember in selector u dont want to call the method , just name it
toolbar.setItems([doneBtn], animated: true)
//assign toolbar
textField.inputAccessoryView = toolbar
//assign date picker to textfield
textField.inputView = datePickerTime
}
@objc func donePressed(textField: UITextField) {
textField.text = "\(datePickerTime)"
self.view.endEditing(true)
}
}
//MARK: - TextField Delegate
extension NewActivityTableViewController: UITextFieldDelegate {
func textFieldDidBeginEditing(_ textField: UITextField) {
if textField == startingTimeTxt {
createDatePicker(textField: textField)
}
else if textField == endingTimeTxt {
createDatePicker(textField: textField)
}
}
}