ScrollView .scrollDismissesKeyboard(.interactively) 感觉很奇怪

问题描述 投票:0回答:2

我像这样设置了一个 ScrollView:

ScrollView(.vertical) {
    // ...
}
.scrollDismissesKeyboard(.interactively)
.safeAreaInset(edge: .bottom, spacing: 0) {
    TextInputCellView(with: Color(hex: 0xf5f9fc)) { value in
        vm.send(text: value)
    }
}

新添加的

scrollDissmissesKeyboard
可以工作,但是看起来和感觉有点奇怪。这是一个错误还是我做错了什么?

swiftui keyboard scrollview
2个回答
0
投票

您需要添加

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
中,以便工具栏显示


0
投票

这是一个 SwiftUI 错误:https://github.com/feedback-assistant/reports/issues/437

请尝试我的解决方案https://github.com/frogcjn/BottomInputBarSwiftUI

  1. 对接底部
  2. 改变
    keyboardDismissPadding
  3. 正确更新安全区域插入
© www.soinside.com 2019 - 2024. All rights reserved.