IOS textFieldDidChange при выходе в другой класс - PullRequest
2 голосов
/ 14 февраля 2012

У меня есть конкретный вопрос iOS при доступе к розетке в другом классе.

В моем проекте у меня есть UItableView с настраиваемой таблицей tableViewCells, которую я создал с помощью конструктора интерфейса.Эти ячейки имеют UItextfields, и мне нужно знать, когда изменяется значение определенного текстового поля.(чтобы я мог добавить новую пустую ячейку с текстовым полем, как в вашей адресной книге) Я наткнулся на следующую функцию

[UITextfield addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

Проблема в том, что я использую эту функцию в основном классе, когда выходтекстовое поле находится в подклассе (конкретный класс tableViewCell).

Я создал метод розетки, чтобы я мог получить к нему доступ в основном классе.Но все еще выше код не вызывает событие textFieldDidChange.

Надеюсь, что кто-то может помочь мне с этой проблемой.Или дайте мне другое решение для достижения моей цели (создание нового пустого текстового поля при добавлении первого символа в текущее поле UIText).

Thnx

1 Ответ

3 голосов
/ 14 февраля 2012

textFieldDidChange не работает.Ну, у меня было много проблем с этим.Я не знаю, является ли это устаревшим или что-то.В любом случае вы должны использовать shouldChangeCharacterInRange практически одинаково, если он делегирован правильно.

Но вам нужно немного его изменить, потому что метод запускается до того, как вы что-то действительно напечатали.Таким образом, вы должны получить новое значение и добавить его самостоятельно.

<code>
- (BOOL) textField:(UITextField *)aTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
// Check the replacementString
return YES;
}
...