首页 > 解决方案 > 键盘附件视图覆盖的 SwiftUI 工具栏

问题描述

您好,我在 Xcode 12.4 (iOS 14) 中使用 SwiftUI 解决了一个棘手的问题:假设我有一个Form包含许多部分和TextEditors 的表单,这个表单有一个.toolbar带有一些内容的修饰符(底部栏)(在这种情况下是按钮)。所有这些都包裹在NavigationView. 一旦用户点击其中一个TextEditor,底部工具栏就会被键盘的系统附件视图覆盖。请注意,我根本不修改安全区域。任何人都知道下面的代码有什么问题?

struct ContentView: View {
    @State var narrative: String = ""

    var body: some View {
        NavigationView {
            Form {
                Section(header: Text("Test 1")) {
                    Text("Bla Bla Bla")
                }
                Section(header: Text("Test 2")) {
                    Text("Bla Bla Bla")
                }
                Section(header: Text("Test 3")) {
                    Text("Bla Bla Bla")
                }
                Section(header: Text("Test 4")) {
                    Text("Bla Bla Bla")
                }
                Section(header: Text("Test 5")) {
                    Text("Bla Bla Bla")
                }
                Section(header: Text("Text Editor 1")) {
                    TextEditor(text: $narrative)
                }
                Section(header: Text("Test 6")) {
                    Text("Bla Bla Bla")
                }
                Section(header: Text("Test 7")) {
                    Text("Bla Bla Bla")
                }
                Section(header: Text("Test 8")) {
                    Text("Bla Bla Bla")
                }
                Section(header: Text("Test 9")) {
                    Text("Bla Bla Bla")
                    TextEditor(text: $narrative)
                }
            }
            .navigationTitle("Title")
            .navigationBarTitleDisplayMode(.inline)
            .toolbar(content: {
                ToolbarItem(placement: .bottomBar) { Button("Press me") { }  }
            })
        }
        .navigationViewStyle(StackNavigationViewStyle())
    }
}

在此处输入图像描述

标签: iosswiftswiftuiswiftui-navigationviewswiftui-form

解决方案


推荐阅读