Проверить пустое TextField из PickerView - Swift
У меня есть два TextFields, которые я хочу проверить, если они пусты. Один получает данные с клавиатуры, а другой получает данные из PickerView.
Я использовал это до того, как изменил второй TextField с ввода с клавиатуры на ввод PickerView:
func setupAddTargetIsNotEmptyTextFields() {
saveCupboardButton.isHidden = true //hidden okButton
saveViewButtonBorder.isHidden = true
addCupboardTextField.addTarget(self, action: #selector(textFieldsIsNotEmpty),
for: .editingChanged)
addCupboardTypeTextField.addTarget(self, action: #selector(textFieldsIsNotEmpty),
for: .editingChanged)
}
@objc func textFieldsIsNotEmpty(sender: UITextField) {
sender.text = sender.text?.trimmingCharacters(in: .whitespaces)
guard
let name = addCupboardTextField.text, !name.isEmpty,
let type = addCupboardTypeTextField.text, !type.isEmpty
else
{
self.saveCupboardButton.isHidden = true
self.saveViewButtonBorder.isHidden = true
return
}
// enable okButton if all conditions are met
saveCupboardButton.isHidden = false
saveViewButtonBorder.isHidden = false
}
Это отлично работало, но затем я добавил PickerView:
func createPicker() {
// toolbar
let toolbar = UIToolbar()
toolbar.sizeToFit()
// doneButton
let done = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector(donePressed))
toolbar.setItems([done], animated: false)
addCupboardTypeTextField.inputAccessoryView = toolbar
addCupboardTypeTextField.inputView = picker
}
@objc func donePressed() {
addCupboardTypeTextField.text = pick
self.view.endEditing(true)
}
Причиной моего addTarget .editing changed
он не будет проверять, изменилось ли что-то, когда PickerView устанавливает данные. Есть ли способ это исправить? заранее спасибо