我想在文本字段中,当用户输入数字时,例如12345,其格式为123.45。用户永远不需要输入小数位,它只使用最右边的2个数字作为小数位。该字段也应该只允许数字。这是一个SwiftUI项目。预先感谢您的协助。
答案 0 :(得分:0)
由于您输入的内容和在TextField视图中显示的内容之间存在两种方式的绑定,因此似乎无法对输入的显示数字进行插值。我会建议一个小技巧:
.foregroundColor(.clear)
.keyboardType(.numberPad)
.accentColor(.clear)
隐藏光标specifier: "%.2f"
看起来像
这是代码:
struct ContentView: View {
@State private var enteredNumber = ""
var enteredNumberFormatted: Double {
return (Double(enteredNumber) ?? 0) / 100
}
var body: some View {
Form {
Section {
ZStack(alignment: .leading) {
TextField("", text: $enteredNumber)
.keyboardType(.numberPad).foregroundColor(.clear)
.textFieldStyle(PlainTextFieldStyle())
.disableAutocorrection(true)
.accentColor(.clear)
Text("\(enteredNumberFormatted, specifier: "%.2f")")
}
}
}
}
}