NSNumberFormatter-Decimal Style-value Изменяется, когда мы снова переходим к этому текстовому полю, с редактированием или без него. - PullRequest
0 голосов
/ 10 ноября 2011

Приведенный ниже код, который я использовал для форматирования строки в textfieldShouldDidEndEditing ,

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];    
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
long long num =  [textField.text longLongValue];
NSString *formattedOutput = [formatter stringFromNumber:[NSNumber numberWithLongLong:num]];
textField.text = formattedOutput;
[formatter release];

У меня есть проблема в приведенном выше коде, в первый раз он работает нормально, но когда мы возвращаемся к текстовому полю и выходим из него, тогда значение меняется.

Например, я в первый раз ввел значение 123456789123456789 и получил этот вывод 123,456,789,123,456,789 и теперь, когда мы повторно вводим и выходим из текстового поля с редактированием или без него, я получаю значение 123.

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

1 Ответ

3 голосов
/ 10 ноября 2011

Конечно, потому что после первого вызова в UITextField сохраняется 123,456,789,123,456,789, а не 123456789123456789

При повторном вызове этот метод в num будет сохранен 123.

Попробуйте это:

заменить

long long num =  [textField.text longLongValue];

на

long long num =  [[formatter numberFromString:textField.text] longLongValue];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...