SwiftUI: очистить TextField при начале редактирования - PullRequest
1 голос
/ 02 октября 2019

Как очистить содержимое TextField при начале редактирования.

Я попытался прочитать Apple Document и найти все похожие вопросы, но не могу найти ответ.

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

В коде это будет выглядеть так:


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())

0 голосов
/ 02 октября 2019

Параметр onEditingChange принимает закрытие с одним параметром Bool, если оно истинно, тогда TextField начал редактировать параметр. В закрытии проверьте значение параметра и очистите переменную TextField, если она истинна.

...