https://developer.apple.com/documentation/uikit/uiscrollview/keyboarddismissmode/interactive
在典型的 中UIScrollView,可以设置此属性以使键盘与滚动一起交互关闭。
是否可以在 SwiftUI 中实现这一点?如果它不能直接在 上可用ScrollView,我认为可能可以通过UIScrollView直接嵌入。
我在我的 ContentView 的 onAppear 修饰符中添加代码。它可以是onDrag或.interactive取决于您何时要关闭键盘:
struct ContentView: View {
var body: some View {
Text("Hello World")
.onAppear {
UIScrollView.appearance().keyboardDismissMode = .onDrag
}
}
}
Run Code Online (Sandbox Code Playgroud)
是的,
将此代码添加到 init()
init() {
// on a list:
// UITableView.appearance().keyboardDismissMode = .interactive
UIScrollView.appearance().keyboardDismissMode = .interactive
}
Run Code Online (Sandbox Code Playgroud)
还想指出jsbeginnerNodeJS的答案也适用于任何可滚动视图,例如List. 例如:
struct ContentView: View {
@ObservedObject private var viewModel = GistsViewModel()
var body: some View {
NavigationView {
VStack {
SearchBar(text: $viewModel.searchText)
List {
ForEach(viewModel.gists) { gist in
NavigationLink(destination: SafariView(url: gist.htmlURL)
.navigationBarTitle("")
.navigationBarHidden(true)) {
GistView(gist: gist)
}
}
}
.navigationBarTitle(Text("GitHub Gists"))
.edgesIgnoringSafeArea(.bottom)
}
}
}
init() {
UIScrollView.appearance().keyboardDismissMode = .interactive
}
}
Run Code Online (Sandbox Code Playgroud)
查看SwiftUI文档,这似乎还不可能。我认为你最好的选择是将 an 包装到此UIScrollView处以进行开发谈话UIViewRepresentable。我在这里找到了 UIScrollView 的教程,您只需将其添加到代码中KeyboardDismissmode
| 归档时间: |
|
| 查看次数: |
1761 次 |
| 最近记录: |