Button SwiftUI在按钮上触发操作,而无需用户单击按钮
我创建了一个非常简单的登录视图。 我观察到一种非常奇怪的行为。当我在文本框内单击时,该单击最终会触发“登录”按钮上的“操作”。以下是负责设置此部分视图的代码Button SwiftUI在按钮上触发操作,而无需用户单击按钮,button,swiftui,Button,Swiftui,我创建了一个非常简单的登录视图。 我观察到一种非常奇怪的行为。当我在文本框内单击时,该单击最终会触发“登录”按钮上的“操作”。以下是负责设置此部分视图的代码 var body: some View{ ZStack{ VStack(alignment: .center){ TextField("Login", text: $model.userName).padding().border(/*@START
var body: some View{
ZStack{
VStack(alignment: .center){
TextField("Login", text: $model.userName).padding().border(/*@START_MENU_TOKEN@*/Color.black/*@END_MENU_TOKEN@*/, width: 1).cornerRadius(2.0)
SecureField("Password",text:$model.password).padding().border(Color.black, width:1).cornerRadius(2.0)
Toggle(isOn:$model.rememberMe){
Text("Remember me")
}
if (model.loginFailed){
Text(model.errorMessage!).font(.footnote).foregroundColor(.red).animation(.easeIn)
}
VStack{
Button(action: signIn) {
Text("Login")
}
Button(action:recoverPassword){
Text("Forgot Password?")
}
}
}.padding().zIndex(100).disabled(model.loginInProgress)
LoginInProgressIndicator().animation(.easeIn).zIndex(model.loginInProgress ? 200: 0).opacity(model.loginInProgress ? 0.9 : 0)
}
}
一段时间内,第一次在任一文本框内单击按钮就会触发“操作”。有时,在我尝试了几次点击文本框的尝试后,它会触发。底线是“登录”按钮上的“操作”被触发,而无需点击按钮
代码的设置方式是否有问题。或者当按钮是一个组或某物的一部分时,需要做一些特殊的事情来处理按钮上的“动作”
任何帮助都将不胜感激
更新:
我添加了一些老式的诊断来检查视图中两个按钮的“动作”行为。原来,文本框中的时钟触发了两个按钮的动作。打印消息总是成对出现
更多更新
这个问题更为普遍。单击toplevel VStack中的任意位置,将导致按钮上的操作触发器。问题在于该部分周围有一个表单元素。我有一个使用表单的附件视图。此登录输入部分视图包含在其中。表单的行为似乎是,无论您在表单中单击什么位置,它都会触发表单中包含的所有按钮操作。这真的不是我所期望的。问题在于在该部分周围有一个表单元素。我有一个使用表单的附件视图。此登录输入部分视图包含在其中。表单的行为似乎是,无论您在表单中单击什么位置,它都会触发表单中包含的所有按钮操作。这真的不是我所期望的。我用这个做了更多的实验。即使我在文本框内单击,两个按钮上的“操作”似乎也会同时被触发。我对此做了更多的实验。即使我在文本框内单击,两个按钮上的“操作”似乎同时被触发。