Ale*_*abý 2 searchable swiftui swiftui-navigationstack
当用户单击搜索框以满足条件(显示另一个视图)时,我需要进行配置。一旦他单击“取消”以显示原始视图(已经可以通过 .onChange(of: searchText) { value in if (!value.isEmpty) {...) 进行测试
NavigationStack {
...
if showView == true {}
...
}
.searchable(text: $searchText, placement: .navigationBarDrawer(displayMode: .always), prompt: LocalizedStringKey("Look for something"))
.focused($focusState)
.onChange(of: focusState, perform: {
showView = true
})
Run Code Online (Sandbox Code Playgroud)
当用户开始搜索时,我需要显示不同的视图并隐藏原始视图,因为我在新视图上有搜索设置。一旦他点击“搜索”按钮,搜索就会开始。
@FocusState不是处理此问题的方法,因为搜索栏会更新或响应此状态下的更改。
您需要使用的是应用修饰符的isSearching Environment视图中的变量.searchable,例如:
struct ContentView: View {
@State private var searchText = ""
var body: some View {
NavigationView {
SearchingView(searchText: $searchText)
.searchable(text: $searchText, placement: .navigationBarDrawer(displayMode: .always), prompt: LocalizedStringKey("Look for something"))
}
}
}
struct SearchingView: View {
@Environment(\.isSearching) private var isSearching
@Binding var searchText: String
var body: some View {
if isSearching {
// Show your filtered data view
} else {
// Show non-searching view
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1242 次 |
| 最近记录: |