【问题标题】:SwiftUI: Clear TextField on edit beginSwiftUI:在编辑开始时清除 TextField
【发布时间】:2019-10-02 04:31:16
【问题描述】:

如何在编辑开始时清除 TextField 的内容。

我尝试阅读 Apple Document 并搜索所有类似的问题,但找不到答案。

【问题讨论】:

    标签: swiftui textfield


    【解决方案1】:

    在代码中它看起来像这样:

    
    import SwiftUI
    import PlaygroundSupport
    
    struct MyTextView: View {
        @State private var text1: String = "Some Content"
        @State private var text1Placeholder: String = ""
        @State private var text2: String = ""
        var body: some View {
            VStack(alignment: HorizontalAlignment.center, spacing: 20) {
    
                Image(systemName: "circle")
                TextField( self.$text1Placeholder.wrappedValue, text: $text1, onEditingChanged: { (editing) in
                    if editing {
                        self.$text1Placeholder.wrappedValue
                            = self.$text1.wrappedValue 
                        self.$text1.wrappedValue = ""
                    }
                })
                TextField("Text Field 2", text: $text2)
                .border(Color.green)
    
            }.padding()
    
        }
    }
    
    PlaygroundPage.current.liveView = UIHostingController(rootView: MyTextView())
    
    

    【讨论】:

    • 设置self.text1 = ""后如何将text1的当前值显示为TextField的placeHolder
    • 我编辑了与您的其他问题相关的答案。
    【解决方案2】:

    onEditingChange 参数采用一个带有单个 Bool 参数的闭包,如果为 true,则 TextField 已开始编辑该参数。在您的闭包中检查参数的值,如果为真则清除 TextField 变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      • 2013-07-27
      • 2019-02-16
      • 2020-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多