小编Rit*_*hie的帖子

SwiftUI - 如何在工作表中出现文本字段时将其聚焦?

我在视图中进行了搜索TextField,该搜索被触发以显示在ContentView.

当使用和TextField出现工作表时,我可以自动聚焦它,但是,我发现工作表需要在聚焦和屏幕键盘出现之前完全显示。@FocusStateonAppearTextField

这感觉非常慢,我注意到在许多其他应用程序中它们能够触发屏幕键盘和同时出现的工作表。

这是我的代码:

struct ContentView: View {
    @State var showSearch = false

    var body: some View {
        Button {
            showSearch = true
        } label: {
            Text("Search")
        }
        .sheet(isPresented: $showSearch) {
            SearchView()
        }
    }
}


struct SearchView: View {
    @State var searchTerm = ""
    @FocusState private var searchFocus: Bool

    var body: some View {
        TextField("Search", text: $searchTerm)
            .focused($searchFocus)
            .onAppear() {
                searchFocus = true
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有不同的方法可以使键盘随着工作表的出现而出现,从而使整体体验感觉更加无缝?

ios swift swiftui

5
推荐指数
1
解决办法
1118
查看次数

标签 统计

ios ×1

swift ×1

swiftui ×1