如何像 SwiftUI 中的 WhatsApp 一样在滑动时关闭键盘

Erc*_*aba 6 swiftui

我知道有一些关闭键盘的答案,但大多数都是在键盘外部点击时触发的。正如我在问题中所述,如何实现滑动(到底部)时关闭键盘。

Mar*_*nek 4

UIScrollView 有keyboardDismissMode,当设置为 时interactive,将实现您想要的。SwiftUI 不\xe2\x80\x99t 对此提供直接支持,但由于 SwiftUI 在幕后使用 UIScrollView,因此您可以使用它,将应用程序中的所有滚动视图的 KeyboardDismissMode 设置为交互。

\n

UIScrollView.appearance().keyboardDismissMode = .interactive

\n

您的视图层次结构中必须有一个 ScrollView 才能正常工作。Here\xe2\x80\x99s 是一个演示该行为的简单视图:

\n
struct ContentView: View {\n    @State private var text = "Hello, world!"\n\n    var body: some View {\n        ScrollView {\n            TextField("Hello", text: $text)\n                .padding()\n        }\n        .onAppear {\n            UIScrollView.appearance().keyboardDismissMode = .interactive\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

唯一需要注意的是,这会影响应用程序中的所有滚动视图。如果您只想影响应用程序中的一个滚动视图,我不知道\xe2\x80\x99t 是否有一种简单的解决方案。

\n