Need to format the currency while typing in textfield. I have tried many answers but nothing worked in my case. My currency is INR. When user type it should change from, example 1200 to ₹1,200. I am able to convert it to ₹1200 but comma is missing.
My implementation:
extension NumberFormatter{
static var currencyFormatter: NumberFormatter {
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.currencySymbol = "₹"
formatter.maximumFractionDigits = 0
formatter.usesGroupingSeparator = true
formatter.currencyCode = "INR"
formatter.currencyGroupingSeparator = ","
formatter.groupingSeparator = ","
formatter.maximumIntegerDigits = 10
formatter.locale = Locale(identifier: "en_IN")
return formatter
}}
@State var testAmount = String()
TextField("₹ 0", text: $testAmount)
.onChange(of: testAmount){newvalue in
if let parsedAmount = Double(newvalue){
self.testAmount = NumberFormatter.currencyFormatter.string(from: NSNumber(value: parsedAmount)) ?? ""
}
}
.keyboardType(.numberPad)