У меня есть UITableView
в моем ViewController
. Каждая ячейка содержит textfield
, где кто-то может ввести новый текст (список дел). Теперь я хочу добавить новую ячейку, которая уже содержит новый textfield
, только если textfield
предыдущей ячейки содержит текст.
В настоящее время я использую UIButton
для добавления новой ячейки, и это работает и изменяет размеры табличного представления, чтобы все ячейки были видны, но я хочу, чтобы это было автоматизировано после заполнения предыдущей ячейки, чтобы она стала более удобной для пользователя.
Так выглядит моя раскадровка.
И вот код, который я сейчас использую для добавления новой строки:
@IBAction func btnAddRow_TouchUpInside(_ sender: Any) {
toDoTableView.beginUpdates()
amountCells.append("")
self.toDoTableView.insertRows(at: [IndexPath.init(row: self.amountCells.count - 1, section: 0)] , with: .automatic)
toDoTableView.endUpdates()
tblHeight.constant = toDoTableView.contentSize.height
}
Есть идеи, как мне это сделать? Заранее спасибо.
РЕДАКТИРОВАТЬ: я пытался использовать EditingDidEnd
class TextFieldsCell: UITableViewCell {
@IBOutlet weak var txtToDo: UITextField!
@IBAction func txtToDo_EditingDidEnd(_ sender: Any) {
if(!(txtToDo.text?.isEmpty)! {
print("Insert Code to Add New Row")
}
}
}
Когда я это делаю, я не могу получить доступ к toDoTableView
с моего ViewController
. Другая проблема, к которой это может привести, заключается в том, что когда уже есть 5 строк, а первая просто редактируется, вставляется другая строка, а я этого не хочу.