SwiftUI:为什么切换文本字段焦点时键盘会“跳跃”?

Jam*_*248 5 keyboard textfield swiftui

我尝试过使用两个文本字段的简单视图。当提交第一个时,我想把重点放在第二个上。这是我的代码。

enum ContentViewFocus {
    case field1
    case field2
}

struct ContentView: View {
    @State private var field1Text = ""
    @State private var field2Text = ""
    @FocusState private var fieldFocus: ContentViewFocus?
    
    var body: some View {
        VStack(spacing: 24.0) {
            TextField("field 1", text: $field1Text)
                .focused($fieldFocus, equals: .field1)
                .onSubmit {
                    fieldFocus = .field2
                }
            TextField("field 2", text: $field2Text)
                .focused($fieldFocus, equals: .field2)
                .onSubmit {
                    fieldFocus = nil
                }
            Spacer()
        }
        .padding(24.0)
        .onAppear {
            DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
                fieldFocus = .field1
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,尽管这正确地将焦点集中到第二个文本字段,但键盘同时会产生轻微的“跳跃”动画。是什么原因造成的?

感谢您的帮助