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

Luk*_*kas 8 keyboard scrollview swiftui

我像这样设置了 ScrollView:

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

然而,新添加的scrollDissmissesKeyboard作品看起来和感觉起来确实有点奇怪。这是一个错误还是我做错了什么?

在此输入图像描述

sad*_*del 0

您需要将其添加TextField为键盘配件。使用 SwiftUI,您可以通过ToolBarItemwith.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)
Run Code Online (Sandbox Code Playgroud)

确保将视图包裹在 a 中NavigationView以便工具栏显示