gpt4 book ai didi

search - SwiftUI - 单击取消时执行操作 - .searchable 函数

转载 作者:行者123 更新时间:2023-12-05 00:43:34 29 4
gpt4 key购买 nike

使用.searchable(text: $text)函数时,搜索时搜索栏会出现一个取消按钮。

点击取消按钮时有什么方法可以执行操作吗?我想在点击取消时调用一个函数,但不知道点击取消时如何执行操作。

Apple Documentation没有提及此事。回到 UIKit 有 func searchBarCancelButtonClicked(searchBar: UISearchBar) { 来做到这一点。

下面是我所指的取消按钮的图像:enter image description here

最佳答案

您可以使用 isSearching 环境值 (https://developer.apple.com/documentation/swiftui/environmentvalues/issearching?changes=_6) 来查看是否正在执行搜索。要在取消时执行操作,您可以使用 onChange 观察从 truefalse 的变化:


struct ContentView: View {
@State private var searchText = ""
@Environment(\.dismissSearch) var dismissSearch

var body: some View {
NavigationView {
VStack {
ChildView()
Text("Searching for \(searchText)")

}

.searchable(text: $searchText)
.navigationTitle("Searchable Example")
}
}
}

struct ChildView : View {
@Environment(\.isSearching) var isSearching

var body: some View {
Text("Child")
.onChange(of: isSearching) { newValue in
if !newValue {
print("Searching cancelled")
}
}
}
}

需要注意的是,似乎 isSearching 必须在 searchable 修饰符的 subview 中才能正常工作

关于search - SwiftUI - 单击取消时执行操作 - .searchable 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69355159/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com