, , , , indexPath, , . indexPath didSet.
class EditableTableViewCell: UITableViewCell {
@IBOutlet weak var textField: TableViewTextField!
var indexPath: IndexPath? {
didSet {
textField.indexPath = indexPath
}
}
}
class TableViewTextField: UITextField {
var indexPath: IndexPath?
}
TableView:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "EditableCell") as! EditableTableViewCell
cell.indexPath = indexPath
return cell
}
UITextFieldDelegate, textField indexPath, , .
, . - , .
override func textFieldDidEndEditing(_ textField: UITextField) {
guard let myTextField = textField as? TableViewTextField else { fatalError() }
guard let indexPath = myTextField.indexPath else { fatalError() }
}