jn_*_*pdx 16
您可以使用isSearching
环境值(https://developer.apple.com/documentation/swiftui/environmentvalues/issearching?changes=_6)来查看是否正在执行搜索。要在取消时执行操作,您可以使用以下命令来观察true
从 到的更改:false
onChange
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")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
可能需要注意的是,它似乎isSearching
必须位于searchable
修改器的子视图内才能正常工作