SwiftUI - 如何防止 sheet 中的键盘推高我的主 UI

SwiftUI - How to prevent keyboard in a sheet to push up my main UI

我在入职期间使用 sheets (SwiftUI) 让人们输入文本,但是每当 sheet 被关闭时,背景中的元素就会移动,就好像键盘是上下推他们。如果键盘不在屏幕上,当 sheet 消失时,背景中的元素不会移动。我试过使用 .ignoresSafeArea(.keyboard, edges: .bottom) 但它似乎不起作用。

关于如何在使用键盘 sheet 被关闭时“修复”背景元素有什么想法吗?

  private var welcomeSection5: some View {
    ZStack {
        VStack {
            
            // This is the part that moves up and down
            TellSlideView(text: "And what's your age \(userName) if I may?")
            Spacer()
            Button(action: {
                displaySheet.toggle()

            }, label: {
                Text("Enter age")
                    .padding()
                    .foregroundColor(Color.white)
                    .frame(maxWidth: .infinity)
                    .background(Color.MyTheme.Purple)
                    .cornerRadius(15)
                    .padding(.horizontal)
                    .padding(.bottom, 40)
            })
        }.sheet(isPresented: $displaySheet) {
            AddUserAgeView(onboardingState: $onboardingState)
        }.ignoresSafeArea(.keyboard, edges: .bottom)
    }
}

我曾经遇到过类似的问题。我无法重现您的代码,但您可以尝试像这样使用 GeometryRadar:

    GeometryReader { geometry in
        ZStack {
            VStack {
                
                // This is the part that moves up and down
            }
        }
    }
    .ignoresSafeArea(.keyboard, edges: .bottom)