Используйте клавиатуру для ввода значения валюты в желаемом формате - PullRequest
2 голосов
/ 29 ноября 2011

Мне нужен экран, который начинается с «$ 0.00» (или другого символа, основанного на локали), в который я могу вводить значения, и он будет обновляться по одному за раз.(тип 1234, возвращает 0,01 доллара США, 0,12 доллара США, 1,23 доллара США, 12,34 доллара США).Я знаю, как это сделать с помощью цифр, введенных в текстовое поле, и одним нажатием кнопки измените форматирование либо в текстовом поле, либо в новой метке.Однако я хочу сделать это без нажатия дополнительной кнопки и использовать метку, а не textField.

float moneyEarnedFloat = [revenueTextField.text floatValue]/100.0f;
NSNumber *moneyEarned = [NSNumber numberWithFloat:moneyEarnedFloat];
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];

revenueTextField.text = [currencyFormatter stringFromNumber:moneyEarned];

Примером может служить экран Добавить транзакцию mint.com.

1 Ответ

1 голос
/ 29 ноября 2011

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

NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
int currencyScale = [currencyFormatter maximumFractionDigits];

TextFieldDidChange:

[mytextField addTarget:self action:@selector(textFieldDidChange) forControlEvents:UIControlEventEditingChanged];

Затем выполните:

    - (void)textFieldDidChange {
myLabel.text = mytextField.text;
}
...