Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: benwizОтветов: 1

Я хочу иметь экран, который начинается с "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.

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

iphoneuilabelcurrency

Ответы

Ответ 1 · рейтинг 1 · SimplyKiwi

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

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;
}

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы