Полагаю, я понял это.Не уверен, что это правильное решение, но, похоже, оно работает.
Сначала в своем пользовательском классе элементов я передаю источник данных в качестве делегата.Теперь, когда делегат является частью элемента, я могу передать его в свое текстовое поле в качестве делегата.Пока я включаю UITextFieldDelegate в мой класс источника данных, он будет отвечать как делегат моего текстового поля.Таким образом, мы получаем содержимое из текстового поля.
Если я хочу изменить содержимое текстового поля из источника данных, я могу использовать метод:
- (void)tableView:(UITableView*)tableView cell:(UITableViewCell*)cell willAppearAtIndexPath:(NSIndexPath*)indexPath
Я могу проверить строку, используя indexPath.row затем введите ячейку в качестве соответствующего пользовательского класса ячейки.Оттуда я могу получить доступ к любым публичным методам в своем классе ячеек.Поэтому я создал один, который возвращает ссылку на текстовое поле.Поэтому я могу сказать:
[[(MyCustomTextFieldCell *)cell theTextField] setText:@"hello world"];
Следующий шаг - назначить его локальному ивару, и тогда я предполагаю, что я смогу получить к нему доступ в любое время.
Основная причинаЯ хочу иметь возможность изменять содержимое текстового поля, так как в некоторых случаях при нажатии на текстовое поле появляется средство выбора, а результаты средства выбора форматируются и вставляются обратно в текстовое поле.
Пожалуйста, дайте мне знать, если мой подход слишком запутан.Возможно, я создам образец и опубликую его для всех, чтобы разорвать и сказать мне, что я дебил, и есть лучший способ.
спасибо, хау