如何解决输入Int的iOS SwiftUI TextField缺少占位符
我希望我的iOS SwiftUI TextField显示占位符“输入整数:”,但是TextField显示0(var值)。当用户删除0时,会出现占位符“输入整数:”。如何在不使用户先删除0的情况下出现占位符“输入整数:”?先感谢您。 macOS Catalina 10.15.6上的Xcode 11.6。
struct ContentView: View {
@State private var value: Int = 0;
@State private var text: String = "";
var body: some View {
VStack {
TextField(
"Enter an integer:",value: $value,formatter: NumberFormatter(),onCommit: {self.text = "The product is \(2 * self.value).";}
)
.keyboardType(.numbersAndPunctuation)
.textFieldStyle(RoundedBorderTextFieldStyle())
Text(text)
}
.padding([.leading,.trailing],16)
}
}
解决方法
要为占位符提供格式为TextField
的占位符,我们需要使用可选的值持有者。
这是一个固定的变体
struct ContentView: View {
@State private var value: Int?
@State private var text: String = ""
var body: some View {
VStack {
TextField(
"Enter an integer:",value: $value,formatter: NumberFormatter(),onCommit: {self.text = "The product is \(2 * (self.value ?? 0)).";}
)
.keyboardType(.numbersAndPunctuation)
.textFieldStyle(RoundedBorderTextFieldStyle())
Text(text)
}
.padding([.leading,.trailing],16)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。