выпуск iPhone SDK 3.0 - PullRequest
       29

выпуск iPhone SDK 3.0

0 голосов
/ 22 мая 2009

Я установил maxlength для моего textField, когда я ввел максимальное количество символов в textField, возврат не работает. Из-за этого я не могу изменить содержимое textFields. Это происходит, когда я тестирую свое приложение на iPhone SDK 3.0, но оно правильно работает в iPhone SDK 2.2.

Вот мой код,

- (BOOL)textField:(UITextField *)txtField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if (txtField.text.length >= 15 && range.length == 0)
    {
        return NO; 
    }
    else
    {
        return YES;
    }
}

почему это происходит в iPhone SDK 3.0?

1 Ответ

0 голосов
/ 22 мая 2009

В верхней части моей головы, range.length == 0 вернет true для символа возврата, поэтому вы явно возвращаете NO, когда пользователь нажимает клавишу backspace в полнотекстовом поле. Я бы предложил изменить первое условие следующим образом:

if ( txtField.text.length + range.length > 15 )
    return ( NO );

… таким образом вы проверяете, будет ли измененная строка *1006* слишком большой, чтобы уместиться (вместо того, чтобы просто проверять отдельные размеры существующего значения и сложения), и вы не потеряете нового кода вставки в OS 3.0, который может добавлять более одного символа в текстовое поле одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...