Mettre en forme la devise dans le champ de texte dans Swift en entrée
Je suis en train de format de monnaie d'entrée dans un champ de texte dans rapide que les entrées de l'utilisateur.
Jusqu'à présent, je ne peux le formater correctement lorsque l'utilisateur termine la saisie:
@IBAction func editingEnded(sender: AnyObject) {
let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
formatter.locale = NSLocale(localeIdentifier: "en_US")
var numberFromField = NSString(string: textField.text).doubleValue
textField.text = formatter.stringFromNumber(numberFromField)
}
Cependant, j'aimerais que la monnaie à la mise en forme du moment, les entrées de l'utilisateur. Quand j'essaie de le faire sur le Champs d'actions "de l'Édition Modifié" ou "Valeur a Changé", je ne peux entrer 1 numéro (si j'entre un 8, il devient $8.00) mais ensuite, une fois que j'ai entrez un second nombre tout se passe 0.00 $et je ne peux pas entrer d'autres au-delà.
Des suggestions? Je me sens comme ce devrait être une solution facile, mais je ne peux pas tout à fait obtenir à elle.
source d'informationauteur zavtra
Vous devez vous connecter pour publier un commentaire.
J'ai modifié la fonction à partir plus tôt aujourd'hui. Fonctionne très bien pour "fr_fr" et "fr_FR". Cependant, pour "ja_JP", la division par 100-je faire pour créer des décimales est un problème. Vous aurez besoin d'un commutateur ou un if/else qui sépare les monnaies décimales et ceux qui n'ont pas leur quand formaté par le formateur. Mais je pense que cela vous arrive dans l'espace que vous vouliez être.
cela fonctionne pour moi, à l'aide de NSNumberFormatter...
@Robert réponse. Mise à jour pour Swift 2.0
Pour Swift 3.0
J'ai travaillé sur une monnaie normale format ( par exemple 1 est de 1,00$, 88885 est que $8,8885.00 et 7555.8569 $7,555.86.