Один из вариантов - наложить UILabel
на прозрачный фон поверх вашего UITextField
.Зарегистрируйтесь как delegate
из UITextField
и реализуйте:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
Затем каждый раз, когда пользователь вводит этот метод, будет вызываться этот метод, позволяющий принять новое значение, преобразоватьв целое число и передайте его через NSNumberFormatter, затем обновите UILabel, чтобы отобразить это форматированное значение.
static NSNumberFormatter *formatter;
- (BOOL)textField:(UITextField *)aTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *textFieldValue = [aTextField.text stringByAppendingString:string];
if (range.length > 0)
textFieldValue = [aTextField.text substringToIndex:range.location];
if ([textFieldValue isEqualToString:@""])
self.formattedLabel.text = textFieldValue;
else
{
NSDecimalNumber *newValue = [[NSDecimalNumber alloc] initWithString:textFieldValue];
if (!formatter) formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
self.formattedLabel.text = [formatter stringFromNumber:newValue];
}
return YES;
}