【发布时间】:2020-07-11 10:23:32
【问题描述】:
我有两个文本字段,当用户单击它们时,它们都会调用日期选择器。我有一个带有完成按钮的日期选择器,我想在所选文本字段上显示我从日期选择器中选择的时间。那么如何将选定的文本字段作为参数传递给我的 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)
}
}
}
【问题讨论】:
-
一点也不。目标/操作方法的参数必须是受影响的 UI 元素(条形按钮),仅此而已。