Используйте клавиатуру для ввода значения валюты в желаемом формате.

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

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.


person benwiz    schedule 29.11.2011    source источник
comment
я ищу именно что-то вроде этого. Вы достигли этого?? .. если да, не могли бы вы сказать мне, как   -  person ichanduu    schedule 26.09.2012


Ответы (1)


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

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;
}
person SimplyKiwi    schedule 29.11.2011
comment
Я не совсем уверен, как это что-то меняет. Код, который я разместил выше, делает то, что должен, я просто не знаю, как реализовать его в файле .m, чтобы это происходило в реальном времени, я думаю. Пожалуйста, поправьте меня, если я неправильно прочитал ваш пост - person benwiz; 29.11.2011
comment
о, используйте метод делегата textFieldDidChange - person SimplyKiwi; 29.11.2011
comment
посмотри на мою правку. Кроме того, чтобы это происходило в режиме реального времени, это самый простой способ, даже если вы хотите использовать UILabel. - person SimplyKiwi; 29.11.2011
comment
извините, что не отстаю от вопросов, но где именно я могу поставить textFieldDidChange? Внутри метода? - person benwiz; 29.11.2011
comment
метод? в них. Одна строка в viewdidload или везде, где вы загружаете представление. - person SimplyKiwi; 29.11.2011