Я нашел код ниже, который я пытаюсь заставить работать в событии UITableView shouldChangeCharactersInRange. Без символа валюты работает нормально.
Когда я пытаюсь добавить символ валюты, он просто позволяет мне ввести один номер. Что он должен сделать, это, скажем, я ввожу 7536, он должен появиться в следующих шагах £ 0,07, £ 0,75, £ 7,53, £ 75,36, но вместо этого он выглядит как £ 0,07, £ 0,05, 0,03, £ 0,06
Вот код.
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
{ BOOL res = TRUE;
double currentValue = [textField.text doubleValue];
double cents = round(currentValue * 100.0f);
if ([string length]) {
for (size_t i = 0; i < [string length]; i++) {
unichar c = [string characterAtIndex:i];
if (isnumber(c)) {
cents *= 10;
cents += c - '0';
}
}
} else {
// back Space
cents = floor(cents / 10);
}
// This line next works without the currency symbol
//textField.text = [NSString stringWithFormat:@"%.2f", cents / 100.0f];
NSMutableString *aString = [NSMutableString stringWithFormat:@"%@", strCurrencySymbol];
[aString appendFormat:@"%.2f", cents / 100.0f];
textField.text = aString;
res = NO;
return res;
}