前段时间有一个相关的问题: Move TextField up when the keyboard has appear in SwiftUI
看来之前的问题已经解决了。但是,如果我们将 VStack 放在一个 ScrollView 中。SwiftUI 似乎忽略了键盘安全区域并将滚动视图保留在键盘后面。使用一个垂直滚动视图和一个文本字段,我们仍然可以获得所需的行为,滚动视图向上滚动到文本字段。如果我们在垂直滚动视图中使用水平滚动视图,就会出现问题。滚动视图不会向上移动以使文本字段可见。有谁知道如何解决这个问题?
struct ContentView: View {
@State var text = ""
var body: some View {
ScrollView(.vertical, showsIndicators: false) {
VStack {
ForEach(0..<10) {_ in
ScrollView(.horizontal, showsIndicators: false) {
HStack(spacing: 20) {
ForEach(0..<10) {_ in
VStack {
Rectangle()
.fill(Color.red)
.frame(width: 500, height: 300)
TextField("Test", text: $text)
}
}
}
}
}
}
}
}
}