2013-08-15 1 views
0

У меня есть два UITextFields в моем приложении, и приложение имеет отношение к валюте. Я пытаюсь правильно отформатировать его с помощью $ в начале и десятичной запятой, где он должен. Как я и сказал. Я не смог найти нубовый ответ на мой вопрос.Форматирование валюты Правильно для двух UITextFields

ответ

0

Что происходит, вы добавляете наблюдателя, который сообщает нам, когда пользователь закончит редактирование. Как только это произойдет, наш метод formatCurrency выполняет работу по обновлению внешнего вида текстового поля. Изменения вступят в силу после того, как поле с цифрами отменит статус первого ответчика.

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(formatCurrency) 
              name:UITextFieldTextDidEndEditingNotification 
               object:self.numberField]; 
} 

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self.numberField resignFirstResponder]; 
} 

-(void)formatCurrency { 
    NSString *currentValue = self.numberField.text; 
    long long cur = [currentValue longLongValue]; 
    NSNumber *curNum = @(cur); 
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
    [formatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 

    self.numberField.text = [NSNumberFormatter localizedStringFromNumber:curNum 
              numberStyle:NSNumberFormatterCurrencyStyle]; 
} 
+0

спасибо. и это куда? – Antomir

+0

Что это значит? –

+0

да где я вставляю этот код, который я только что дал. – Antomir

0
UILabel *price; 
NSString *dollarSign = "$";//Just use whatever currency symbol you need 


price.text = [dollarSign stringByAppendingString:[NSString stringWithFormat:@"%.2f", priceVariable]]; 

Это будет печатать в формате $ xxx.xx

+0

Это не специфичный для локали, если кто-то использует другую валюту, открывает приложение, которое они все еще будут видеть $. –

+0

Я попытался это сделать, но это не сработало. – Antomir

+0

Большое спасибо, хотя – Antomir

0

Я написал UITextField подкласс для обработки валюты форматирования, доступны здесь:

https://github.com/TomSwift/TSCurrencyTextField

форматирует валюту количество пользователей, тип ATM. Пользователь не может вводить ничего, кроме цифр. Элемент управления использует NSNumberFormatter (валютный стиль!) Внутри, и вы можете настроить его, если хотите, настроить символ валюты ($), десятичные знаки и т. Д.