我有一个文本字段用于存储用户的个人资料名称,在文本字段的右边有一个编辑按钮,可以进行编辑,这样用户就不会意外地更改他们的个人资料。
下面是我的代码:
struct ProfilePage: View {
@State private var name = ""
@State var nameEditEnabled = false
@AppStorage("NAME_KEY") var savedName = ""
var body: some View {
VStack {
HStack {
TextField("Name", text: $savedName)
.textFieldStyle(.roundedBorder)
.font(.title) .disableAutocorrection(true)
.onChange(of: name) {text in
self.savedName = name }
.onSubmit { nameEditEnabled = false }
.disabled(nameEditEnabled ? false : true)
Button(action: {self.nameEditEnabled.toggle()}) {
Image(systemName: "square.and.pencil")
}
}
}
.padding()
}
}
我将如何着手使它在按下按钮时,用户自动进入文本域,键盘弹出,以便他们可以开始键入(而不必手动按下文本域)?
当我启用编辑时,它只启用文本字段,但不让用户开始在其中键入(即,调出键盘,以便他们可以编辑文本字段)。
编辑:更新了建议代码。
GIF of what my app is doing
1条答案
按热度按时间soat7uwm1#
你必须使用focused,见下面的代码: