UITextField должен срабатывать дважды?IOS

Программируем под IOS
Ответить
Anonymous
 UITextField должен срабатывать дважды?

Сообщение Anonymous »

У меня есть табличное представление. В cellForRowAtIndexPath у меня есть ячейка, и в этой ячейке есть UITextField. Я установил делегат текстового поля следующим образом: cell.textField.delegate = self;. Мне нужно вызвать свой API по третьему символу. Поэтому, когда пользователь вводит 3 символа в текстовое поле, вызывается API, следовательно, mustChangeCharactersInRange.

Код: Выделить всё

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (textField.text.length >= 2) {
NSString *substring = [NSString stringWithString:textField.text];
substring = [substring
stringByReplacingCharactersInRange:range withString:string];
[API CALLED WITH BLOCK WITH TEXTFIELD TEXT AS PARAMETER:substring];
}
return YES;
}
Проблема в том, что когда я набираю, например, «abc», метод mustChangeCharactersInRange вызывается в первый раз, а параметр — «abc». Через секунду снова вызывается метод mustChangeCharactersInRange, и в моем текстовом поле появляется еще один добавленный символ, который я не вводил, и всегда копируется последний символ. Итак, в этом примере он отправляет «abcc». Знаете, в чем проблема?

Подробнее здесь: https://stackoverflow.com/questions/325 ... ires-twice
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»