Исправить максимальный лимит символов в текстовом поле - PullRequest
1 голос
/ 23 января 2009

Как можно установить фиксированный лимит символов для текстового поля в Cocos2d?

Ответы [ 3 ]

5 голосов
/ 23 января 2009

Чтобы исправить максимальное количество символов в UITextField, вы можете реализовать метод делегирования UITextField textField:shouldChangeCharactersInRange, чтобы возвращать значение false, если пользователь пытается отредактировать строку после фиксированной длины.

//Assume myTextField is a UITextField
myTextField.delegate = self;

//implement this UITextFiledDelegate Protocol method in the same class
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if ([textField.text length] > kMaxTextFieldStringLength)
        return NO;
    else
        return YES; 
}
2 голосов
/ 19 августа 2009

Чтобы позволить пользователю использовать возврат, вы должны использовать такой код (range.length равен нулю только при нажатии на возврат):

<code>
myTextField.delegate = self;</p>

<p>//implement this UITextFiledDelegate Protocol method in the same class
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    if (textField.text.length >= 10 && range.length == 0)
        return NO;
    return YES;
}
1 голос
/ 17 июля 2009

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

myTextField.delegate = self;

//implement this UITextFiledDelegate Protocol method in the same class
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if (range.location > kMaxTextFieldStringLength)
        return NO;
    else
        return YES; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...