Как переключать текстовые поля в ячейках tableview по нажатию return на клавиатуре?

Для того чтобы переключать текстовые поля в ячейках UITableView по нажатию return на клавиатуре, вам потребуется использовать UITextFieldDelegate и метод textFieldShouldReturn(_:). Вот шаги, которые вам нужно выполнить:

1. Настройте делегата для текстового поля в каждой ячейке UITableView. Вы можете сделать это в методе tableView(_:cellForRowAt:), где создаете или переиспользуете ячейку.

Пример:

   cell.textField.delegate = self

2. В вашем контроллере, реализуйте протокол UITextFieldDelegate:

Пример:

   class ViewController: UIViewController, UITextFieldDelegate {
       // ...
   }

3. В реализации делегата UITextFieldDelegate, реализуйте метод textFieldShouldReturn(_:). В этом методе вы будете определять, какое текстовое поле находится в ячейке и какое поле следует активировать в ответ на нажатие return на клавиатуре.

Пример:

   func textFieldShouldReturn(_ textField: UITextField) -> Bool {
       // Находите текущую ячейку, в которой находится текстовое поле
       if let indexPath = tableView.indexPath(for: textField.superview as! UITableViewCell) {
           // Если это последнее текстовое поле в таблице, скройте клавиатуру
           if indexPath.row == tableView.numberOfRows(inSection: indexPath.section) - 1 {
               textField.resignFirstResponder()
           } else {
               // Переключите фокус на следующую ячейку
               let nextIndexPath = IndexPath(row: indexPath.row + 1, section: indexPath.section)
               let nextCell = tableView.cellForRow(at: nextIndexPath) as! YourTableViewCell
               nextCell.textField.becomeFirstResponder()
           }
       }
       // Возвращаемое значение true указывает, что мы обработали событие
       return true
   }

В этом коде мы используем indexPath для определения текущей ячейки, затем проверяем, является ли она последней в таблице. Если это так, мы просто скрываем клавиатуру вызовом resignFirstResponder(). В противном случае, мы определяем indexPath для следующей ячейки и активируем соответствующее текстовое поле с помощью метода becomeFirstResponder().

4. Необходимо также установить self в качестве делегата self.tableView.delegate = self

После выполнения этих шагов, при нажатии return на клавиатуре активное текстовое поле будет переключено на следующее поле в таблице. Если поле является последним, клавиатура будет скрыта.