Как установить длину символа TextField, отформатировав отформатированное число - PullRequest
0 голосов
/ 16 ноября 2011

Я использовал приведенный ниже код для установки длины символа в 17:

 - (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
//    NSString *stringWithoutSpaces = [theTextField.text stringByReplacingOccurrencesOfString:@"," withString:@""];
    int limit = 16;
    switch (theTextField.tag) {
        case 10:
            NSLog(@"I m In 10");
            //To set maximum No.of Charaters.
            return !([theTextField.text length]>limit && [string length] > range.length);
            break;
        case 11:
            NSLog(@"I m In 11");
            //To set maximum No.of Charaters.
            return !([theTextField.text length]>limit && [string length] > range.length);
            break;
        default:
            NSLog(@"I m In default");
            break;
    }
    return YES;
} 

Я форматирую введенные символы в textfieldShouldEndEditing,

Например, я ввел 12345678912345678, его ограничение до 17 и его форматирование до 12,345,678,912,345,678, и мы снова возвращаемся к TextField, и мы отредактировали до 12,345,678,912,345, тогда он рассматривает , (запятую) как один символ, поэтому длина TextField увеличивается.

Как решить эту проблему?

1 Ответ

0 голосов
/ 16 ноября 2011

Простое решение:

NSString *stringNumber = @"12,345,678,912,345";
NSUInteger length = [[stringNumber stringByReplacingOccurrencesOfString:@"," withString:@""] length];
NSLog(@"length: %lu", length);

Вывод NSLog:

length: 14

Использование форматера чисел.

Пример:

NSString *stringNumber = @"12,345,678,912,345";
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *number = [formatter numberFromString:stringNumber];
NSLog(@"number: %@", number);
stringNumber = [number stringValue];
NSLog(@"stringNumber: %@", stringNumber);

NSLogвывод:

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