ios SwiftUI NavigationLink未重置视图位置

nnsrf1az  于 2023-02-17  发布在  iOS
关注(0)|答案(1)|浏览(155)

我有一个简单的VStack,里面有视图。当键盘出现时,视图会向上移动。我可以处理它。
但是当我点击NavigationLink并返回时,视图仍然停留在原来的位置,假装键盘还在。
我很乐意有任何解决办法:(
前后

var body: some View {
    ZStack {
        Color(.systemGroupedBackground).edgesIgnoringSafeArea(.all)
        VStack {
            LogoView()
                .padding(.vertical, 50)
            if isSigningUp {
                SignUpView()
            } else {
                SignInView()
            }
            Spacer()
            HStack {
                Text("Don't have an account ?")
                Button(action: {
                    isSigningUp.toggle()
                }) {
                    Text("\(invertedAuthCaseLabel) !").foregroundColor(Color("mainColor"))
                }
            }
        }.padding()
        .frame(maxWidth: 500)
    }
}

我尝试了.ignoringSafeArea(.keyboard)修改器,但它不起作用,我的视图仍然在移动。

vltsax25

vltsax251#

如果你认为问题出在键盘上,那么你可以在onDisappear(action:_)中强制关闭键盘。下面的代码可以帮助你关闭键盘。

#if canImport(UIKit)
extension View {
    func hideKeyboard() {
        UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
    }
}
#endif

相关问题