swiftui - 我想在 SwiftUI 中向 TextField 添加 $ 符号
问题描述
嗨,我想在用户键入时向 TextField 添加 $ 符号。
这是我当前的代码。
ZStack(alignment: .leading) {
if price.isEmpty {
Text("Enter total budget")
}
HStack {
TextField("", text: $price)
.keyboardType(.decimalPad)
}
}
解决方案
货币格式化程序是要走的路,但是如果您只想在键入时在 TextField 中显示一个 $,您可以使用这样的东西:(您当然可以将此方法与格式化程序结合使用)
struct ContentView: View {
@State var price = ""
var body: some View {
VStack {
ZStack(alignment: .leading) {
if price.isEmpty {
Text("Enter total budget")
}
HStack {
TextField("", text: Binding(
get: { price },
set: { newVal in
if price.starts(with: "$") {
price = newVal
} else {
price = "$" + newVal
}
})).keyboardType(.decimalPad)
}
}.padding(20)
Text("number entered: " + String(price.dropFirst()))
}
}
}
推荐阅读
- python - 没有为 Scrapy Item Pipeline 命名的模块
- jenkins - How to schedules jobs with specific parameters in a Jenkins multibranch pipeline
- android - Based on JSON data..How to Toast server Status at doInBackground form a Service
- javascript - 使用 JavaScript 禁用第三方 cookie
- javascript - 如何为 Angular 应用程序组织类?
- itext - 在 foxit 中验证签名时,签名似乎在未来错误中签名
- php - 无法声明类 PodioItemField,因为该名称已在使用中
- python - 使用 Python 针对 HTML 文本检查多个字符串(来自文件)
- asp.net-mvc - 在 Chrome 中编辑 MVC5 中的日期不显示正确的格式
- c# - C#中的一个补码