В CustomTextField
protocol CustomTextFieldDelegate {
func deleteRow(at index: Int)
}
class CustomTextField: UITextField {
weak var delegate: CustomTextFieldDelegate?
override public func deleteBackward() {
if text == "" {
print("Backspace tapped to delete row")
// would like to insert delete row method here
delegate?.deleteRow(at: self.tag) //Set the row index
} else {
print("Backspace tapped")
}
super.deleteBackward()
}
}
В Вашей пользовательской ячейке
class YourCustomCell: UITableViewCell {
@IBOutlet weak var textField: CustomTextField!
}
В контроллере табличного представления, в котором вы создаете свою ячейку, сделайте следующее:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(
withIdentifier: tableViewCellIdentifier, for: indexPath) as? YourCustomCell
cell?.textField.tag = indexPath.row // Set the row index as tag so that we can retrieve later
cell?.textField.delgate = self
return cell!
}
Добавить делегировать обработчик обратного вызова вам класса контроллера таблицы
extension YourTableViewController: CustomTextFieldDelegate {
func deleteRow(at index: Int) {
// Call your method to delete cell at index.
}
}