我尝试使用具有用户区域设置货币格式的TextField
我试试这个
struct MyView: View {
@State private var amount = 0.0
let currencyFormatter: NumberFormatter = {
let formatter = NumberFormatter()
formatter.usesGroupingSeparator = true
formatter.numberStyle = .currency
formatter.locale = Locale.current
return formatter
}()
var body: some View {
Form {
// Test 1
TextField("Amount", value: $amount,
formatter: currencyFormatter)
// Test 2
TextField("Amount", value: $amount,
format: .currency(code: Locale.current.currency?.identifier ?? ""))
}
}
两个TextField都会产生相同的格式错误:
金额:0欧元
预期值:
金额:0.00欧元
对于美元,它工作正常:
金额:0美元
1条答案
按热度按时间yi0zb3m41#
我只是通过在代码中添加以下代码找到了解决方案:
它呈现“en_FR”
因此,在我的“项目信息”,我只是有“法语本地化”,并知道两个文本字段(测试1和测试2)工作正常!
我也有Localizable字符串文件到我的项目。
请注意测试1和测试2之间的符号差异:在测试1中,用户必须输入€符号,而在测试2中,用户只需输入一个值。