Я пытаюсь сделать что-то, что, на мой взгляд, будет довольно простым: пусть пользователь вводит сумму в долларах, сохраняет эту сумму в NSNumber (NSDecimalNumber?), А затем через некоторое время снова отображает эту сумму в формате валюты ,
Моя проблема не столько в setNumberStyle: NSNumberFormatterCurrencyStyle и отображении чисел с плавающей точкой. Проблема скорее в том, как указанный numberFormatter работает с этим UITextField. Я могу найти несколько примеров. Эта тема от ноября и эта дают мне некоторые идеи, но оставляют мне больше вопросов.
Я использую клавиатуру UIKeyboardTypeNumberPad и понимаю, что мне, вероятно, следует отображать $ 0,00 (или любой другой формат местной валюты) в поле при отображении, тогда как пользователь вводит цифры, чтобы сдвинуть десятичное место вдоль:
- Начните с отображения $ 0.00
- Нажмите кнопку 2: дисплей $ 0,02
- Нажмите 5 клавиш: дисплей $ 0,25
- Нажмите 4 клавиши: дисплей $ 2,54
- Нажмите кнопку 3: дисплей $ 25,43
Тогда [numberFormatter numberFromString: textField.text] должно дать мне значение, которое я могу сохранить в моей переменной NSNumber.
К сожалению, я все еще борюсь: действительно ли это лучший / самый простой способ? Если так, то, возможно, кто-то может помочь мне с реализацией? Я чувствую, что UITextField может понадобиться делегат, отвечающий на каждое нажатие клавиши, но не уверен, что, где и как это реализовать ?! Любой пример кода? Я очень ценю это! Я искал все выше и ниже ...
Edit1: Итак, я смотрю на stringForObjectValue: NSFormatter и ближайшую вещь, которую я могу найти из того, что рекомендует benzado: UITextViewTextDidChangeNotification . Мне очень трудно найти пример кода на любом из них ... так что дайте мне знать, если вы знаете, где искать?