【发布时间】:2019-10-02 04:31:16
【问题描述】:
如何在编辑开始时清除 TextField 的内容。
我尝试阅读 Apple Document 并搜索所有类似的问题,但找不到答案。
【问题讨论】:
如何在编辑开始时清除 TextField 的内容。
我尝试阅读 Apple Document 并搜索所有类似的问题,但找不到答案。
【问题讨论】:
在代码中它看起来像这样:
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())
【讨论】:
onEditingChange 参数采用一个带有单个 Bool 参数的闭包,如果为 true,则 TextField 已开始编辑该参数。在您的闭包中检查参数的值,如果为真则清除 TextField 变量。
【讨论】: