gpt4 book ai didi

尝试在同一 View 上的文本字段之间移动后,SwiftUI 应用程序卡住,控制台中没有错误

转载 作者:行者123 更新时间:2023-12-03 22:17:44 26 4
gpt4 key购买 nike

我有一个简单的登录 View ,包括两个文本字段、一个指向注册 View 的导航链接、一个指向忘记密码 View 的导航链接和一个登录按钮。我可以选择任一文本字段并输入文本,但是在将文本输入任一文本字段后尝试按下 View 上的任何其他控件(文本字段或导航链接),只会卡住应用程序,控制台窗口中不会记录任何错误消息。

我在其他与旧版本 Xcode/swift 相关的帖子中看到,这种类型的行为可以通过在主线程上执行的连续循环来解释,但是我看不出这如何适用于我的情况?

struct LoginForm : View {

@Binding var emailAddress : String
@Binding var password: String

var body: some View{

VStack(alignment: .leading){

Text("Email address")
.foregroundColor(Color.black)
.bold()
.font(.subheadline)
.padding(.leading, 12)
TextField("Email",text:$emailAddress)
.padding()


Text("Password")
.foregroundColor(Color.black)
.bold()
.font(.subheadline)
.padding(.leading, 12)
SecureField("Password",text:$password)
.padding()

}


}
}





struct LoginRootView : View {

@State private var emailAddress: String = ""
@State private var password: String = ""
@EnvironmentObject var authData: AuthData


var body: some View {


Group{

if self.authData.authenticationDidSucceed {

OnBoardRootView()

}else{

NavigationView{

ZStack{

Image("LoginBG")
.resizable()
.aspectRatio( contentMode: .fill)
.edgesIgnoringSafeArea(.all)
.opacity(0.5)


VStack(alignment: .leading){


Text( "Log into")
.font(.largeTitle)
.bold()


Text( "your account")
.font(.largeTitle)
.bold()


LoginForm(emailAddress:$emailAddress, password:$password)
.padding(.bottom, 8)
.padding(.top, 22)






//Login button

if emailAddress != "" && password != ""{

LoginButton(email:self.emailAddress, password: self.password)
.padding(.vertical, 20.0)
.background(Color.blue, cornerRadius: 30.0)
.padding(.horizontal, 8)


}else{

LoginButton(email:self.emailAddress, password: self.password)
.padding(.vertical, 20.0)
.background(Color.gray, cornerRadius: 30.0)
.padding(.horizontal, 8)
.disabled(emailAddress == "" || password == "")


}




//Forgot password link

HStack{

Text( "Forgot password?")


NavigationLink(destination: ForgotPasswordRootView()) {
Text( "Get help signing in")
.bold()

}

}.padding(.top, 20)


Spacer()

// Registration Link

HStack{

Text( "Don't have an account? ")

NavigationLink(destination: RegistrationRootView()) {
Text( "Sign Up")
.bold()

}

}
.padding(.bottom, 120)


}.padding(.all)
.padding(.top, 160)

// end of vstack


}

//end of zstack

}
//end of navigation view





}
//end of authentication if statement



}
//end of group




}
}





最佳答案

您必须重置模拟器。

模拟器:

硬件 -> 删除所有内容和设置

代码:

  • 进行干净的构建
  • 运行
  • 关于尝试在同一 View 上的文本字段之间移动后,SwiftUI 应用程序卡住,控制台中没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57377033/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com