Как работают методы «shouldChangeTextInRange» и «stringByReplacingCharactersInRange»? - PullRequest
3 голосов
/ 26 сентября 2011

Я хотел бы знать, как работает следующий код.

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    return !([newString length] > 10);
}

Что делает "stringByReplacingCharactersInRange"? И как вышеуказанный метод ограничивает количество символов, которые можно ввести в textField?

Заранее спасибо!

1 Ответ

11 голосов
/ 26 сентября 2011

textField:shouldChangeCharactersInRange:replacementString: - это UITextFieldDelegate метод, который вызывается в любое время, когда содержимое текстового поля собирается измениться (ввод, удаление, вырезание или вставка текста в текстовое поле), запрашивая у делегата разрешение на разрешение.это изменение.

stringByReplacingCharactersInRange:withString: - это метод экземпляра NSString, который делает именно то, что говорит, заменяет некоторый текст в текущей строке другой строкой, создавая новую строку.

Код, который вы проверяетеесли строка, которая будет результатом этого изменения, будет длиннее 10 символов, и если это так, делегат вернет NO и содержимое текстового поля не изменится.Если результирующая строка будет 10 символов или менее, делегат вернет YES, и содержимое текстового поля изменится на ту же строку, что вы получили в newString.

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