【问题标题】:SwiftUI Text field default valueSwiftUI 文本字段默认值
【发布时间】:2020-07-27 14:02:37
【问题描述】:

我正在尝试在文本字段中设置默认值,但我不知道如何。

//TextField("", text:$name)

struct MyView: View {

    @State var name:String = ""

    var body: some View {
        TextField("", text:$name)
    }

    init(n:String) {
        name = n
    }
}

如果我调用MyView("Jack"),Jack 不会作为值出现在文本字段中。

【问题讨论】:

    标签: view swiftui textfield default default-value


    【解决方案1】:

    这可以通过以下方式完成

    struct MyView: View {
    
        @State var name: String
    
        var body: some View {
            TextField("", text:$name)
        }
    
        init(n: String) {
            _name = State(initialValue: n)
        }
    }
    

    【讨论】:

    • 非常感谢!
    • @Asperi 为什么 undescored var name 有效?还有更多分配初始值的普通方法吗?
    • @ЭлёржонКимсанов, Swift Property Wrappers
    • 如果有人想知道它是如何工作的,这里有人实际上解释了这个答案,而不仅仅是代码:stackoverflow.com/a/61398097/1972372
    • 这很有趣,为什么我们应该使用属性包装器来初始化?我的意思是不会在 onAppear 闭包中分配值后立即查看更新?(这就是@State 的全部意义)
    猜你喜欢
    • 2015-08-01
    • 1970-01-01
    • 2022-07-29
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 2022-01-02
    相关资源
    最近更新 更多