TextField 绑定到可选数字

问题描述 投票:0回答:0
struct ContentView: View {
    @State private var data: Double?
    var body: some View {
        VStack {
            TextField("",
                      value: $data,
                      formatter: NumberFormatter(),
                      prompt:Text("..."))
                .textFieldStyle(.roundedBorder)
            Button{
                if let _ = data {
                    //...
                }
            }label:{
                Text("send data").foregroundColor(data == nil ? .gray : .black)
            }
        }
        .padding()
    }
}

我想要一个文本框:

  • Empty:带 ... 灰色提示文本和按钮
  • 不为空:内容绑定到数据和黑色按钮

但是上面的代码不起作用,因为

TexField
需要一个非可选类型。 我找到了
String
类型 SwiftUI Optional TextField 的解决方法,但不适用于
Double?
因为
Double
没有空状态“”

一些提示? ;)

swiftui binding uitextfield option-type
© www.soinside.com 2019 - 2024. All rights reserved.