我像这样设置了一个 ScrollView:
ScrollView(.vertical) {
// ...
}
.scrollDismissesKeyboard(.interactively)
.safeAreaInset(edge: .bottom, spacing: 0) {
TextInputCellView(with: Color(hex: 0xf5f9fc)) { value in
vm.send(text: value)
}
}
新添加的
scrollDissmissesKeyboard
可以工作,但是看起来和感觉有点奇怪。这是一个错误还是我做错了什么?
您需要添加
TextField
作为键盘配件。使用 SwiftUI,您可以通过 ToolBarItem
和 .keyboard
放置来完成此操作。另外,请确保忽略SafeArea(.keyboard)。看起来像这样:
NavigationView {
ScrollView(.vertical) {
// ...
}
.scrollDismissesKeyboard(.interactively)
.toolbar {
ToolbarItem(placement: .keyboard) {
TextInputCellView(with: Color(hex: 0xf5f9fc)) { value in
vm.send(text: value)
}
}
}
}
.ignoresSafeArea(.keyboard)
确保将视图包裹在
NavigationView
中,以便工具栏显示
这是一个 SwiftUI 错误:https://github.com/feedback-assistant/reports/issues/437
请尝试我的解决方案https://github.com/frogcjn/BottomInputBarSwiftUI
keyboardDismissPadding