У меня есть табличное представление с ячейками многократного использования, и у каждого есть текстовое поле (например, поле количества в корзине).И мне нужно обновлять некоторые данные каждый раз, когда редактирование завершается или пользователь нажимает куда-то за пределами клавиатуры, поэтому я использую оба
@IBAction func quantityEditingDidEnd(_ sender: UITextField) {
//code
}
@IBAction func quantityPrimaryActionTriggered(_ sender: UITextField) {
let cell = sender.superview?.superview as! BasketTableItemCell
let indexPath = tableView?.indexPath(for: cell)
//code
}
И у меня возникает ошибка с primaryActionTriggered
, потому что отправитель должен быть Any
, но мне нужно использовать UITextfield
, чтобы определить, какая ячейка нажата.Как я могу решить эту проблему - использовать primaryActionTriggered
и одновременно определять отправителя как UIView
?
*** UPD Я пытался изменить свой код таким образом -
@IBAction func quantityPrimaryActionTriggered(_ sender: Any) {
print("test")
if let textField = sender as? UITextField {
let cell = textField.superview?.superview as! BasketTableItemCell
let indexPath = tableView?.indexPath(for: cell)
//code
}
}
но обратите внимание, что на консоли не было строки "test"
.Так что я думаю, что это @IBAction
вообще не работает.Может, дело в ячейке многоразового использования?didEndEditing
работает хорошо.Подключение к StoryBoard тоже в порядке.