2

我使用 iOS15 修饰符的 SwiftUI searchable 使用 onSubmit 修饰符进行搜索以发送 HTTP 请求,并且我还想在用户点击取消按钮时重置初始列表;如果我找到了 onCancel 修饰符,我将不胜感激。有人卖这个吗?

4

1 回答 1

4

.searchable 附带了两个环境值,即 isSearching 和dismissSearch。

@Environment(\.isSearching) private var isSearching: Bool
@Environment(\.dismissSearch) private var dismissSearch

如果我们有如下的可搜索代码

.searchable(text: self.$searchText)

然后我们可以检测到搜索被取消,如下面的片段。

.onSubmit(of: .search) {
    //Search triggered on tap of search button in keyboard
}
.onChange(of: searchText) { value in
    if searchText.isEmpty && !isSearching {
        //Search cancelled here
    }
}

尝试使用这种方法,同时苹果希望在即将发布的版本中为我们提供一些 .onCancel(.search) 修饰符。

于 2022-02-01T04:09:02.763 回答