您好,我在 Xcode 12.4 (iOS 14) 中使用 SwiftUI 解决了一个棘手的问题:假设我有一个Form
包含许多部分和TextEditor
s 的表单,这个表单有一个.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())
}
}