Вы захотите прослушать сообщения, отправленные UITextView. Поэтому постарайтесь реализовать протокол UITextViewDelegate и зарегистрировать реализующий класс в detailLabel, используя его свойство делегат .
Когда ваш делегат получит уведомление об изменении в UITextView, вам нужно будет идентифицировать ячейку, которой в настоящее время принадлежит UITextView. При этом вы должны помнить, что клетки можно использовать повторно.
Я бы начал с рассмотрения следующего метода в классе UITableView:
- (NSArray *)visibleCells
Мы знаем, что если пользователь внес изменения в содержимое UITextView, оно должно быть в данный момент на экране и, следовательно, присутствовать в ранее упомянутом массиве. Чтобы найти его, мы используем указатель на UITextView, который изменился (это параметр в методе протокола textViewDidChange). Поэтому просто переберите массив visibleCells, получите UITextView и сравните его с измененным UITextView.
- (void)textViewDidChange:(UITextView *)textView {
....
cellsLabel = (UITextView *) [cell.contentView viewWithTag:20];
if (cellsLabel == textView)
...
Теперь у вас будет дескриптор ячейки в UITableView. Чтобы найти индекс, используйте следующий метод UITableView:
- (NSIndexPath *)indexPathForCell:(UITableViewCell *)cell