Просто дайте ячейке значение для ее свойства tag
.Затем вы можете получить эту ячейку, вызвав эту
UITableViewCell *cell = (UITableViewCell *)[self.tableView viewWithTag:tagValue];
, затем, получив ячейку, вы можете получить NSIndexPath, подобный этому
NSIndexPath *indexPath = [self.tableView indexPathForCell:nextResponderCell];
Поскольку в вашей пользовательской ячейке есть UITextField, выможно поместить cell.textField.delegate = self;
в метод источника данных
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
.Таким образом, вам не нужно будет устанавливать NSNotification в пользовательской ячейке.Также в этом же методе вы можете пометить как текстовое поле своих ячеек, например, cell.textField.tag = indexPath.row;
, так и ячейку, подобную этой cell.tag = indexPath.row;
. Теперь, когда вы установили делегат UITextField, теперь вы можете поместить этот метод в UITableViewControllerclass
- (void)textFieldDidBeginEditing:(UITextField *)textField {
CustomCell *cell = (CustomCell *)[self.tableView viewWithTag:textField.tag];
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
}
Приведенный выше метод делегата UITextField должен получить индекс indexPath для ячейки, которую вы в данный момент выбрали.