Ios 显示EditText(在键盘下编辑文本)SwiftUI的键盘后视图不滚动
我在滚动视图中有TextEditor当键盘显示编辑输入时,它会在滚动视图的底部添加正确的填充,但不会在视图的可见部分滚动TextEditor。 当我使用TextField而不是TextEditor时,填充和自动滚动效果很好,但我的应用程序中需要TextEditor(多行TextField)Ios 显示EditText(在键盘下编辑文本)SwiftUI的键盘后视图不滚动,ios,swift,swiftui,scrollview,textfield,Ios,Swift,Swiftui,Scrollview,Textfield,我在滚动视图中有TextEditor当键盘显示编辑输入时,它会在滚动视图的底部添加正确的填充,但不会在视图的可见部分滚动TextEditor。 当我使用TextField而不是TextEditor时,填充和自动滚动效果很好,但我的应用程序中需要TextEditor(多行TextField) ScrollView(.vertical, showsIndicators: true) { ScrollViewReader { proxy in V
ScrollView(.vertical, showsIndicators: true) {
ScrollViewReader { proxy in
VStack(spacing: 0) {
AddActivityButtonStack()
Text("Duration")
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 45, idealHeight: 45, maxHeight: 45, alignment: .leading)
.padding(.leading)
.padding(.trailing)
.padding(.top, 20)
DurationPickerTextField(placeHolder: "", duration: $selectedTime)
.frame(height: 45, alignment: .center)
.padding(.leading)
.padding(.trailing)
Text("Date")
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 45, idealHeight: 45, maxHeight: 45, alignment: .leading)
.padding(.top)
.padding(.leading)
.padding(.trailing)
DatePickerTextField(placeHolder: "", date: $selectedDate)
.frame(height: 45, alignment: .center)
.padding(.leading)
.padding(.trailing)
HStack {
Group {
Button(action: {
print("Hypo Event")
}, label: {
Text("Hypo Event")
})
Button(action: {
print("Hypo Event")
}, label: {
Text("Hypo Event")
})
Button(action: {
print("Hypo Event")
}, label: {
Text("Hypo Event")
})
}
.foregroundColor(Color.white)
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: .center)
.background(Color.red)
.cornerRadius(20)
}
.frame(height: 40)
.padding(.leading)
.padding(.trailing)
.padding(.top)
// Scrolling and padding works fine for textfiled
TextField(
"User name (email address)",
text: $username
)
// padding is correct but does not scroll automatically when the keyboard shows
TextEditor(text: $description)
}
.padding(.top, 20)
.padding(.bottom, 20)
}
}
一个最小的可复制示例非常好,这样我们就可以对其进行测试,并确保我们为您提供了正确的答案: