用途:在 SwiftUI 中实现搜索功能与排查搜索相关缺陷。SwiftUI 搜索基于环境并由导航容器消费:.searchable() 附加到视图,但实际搜索框由 NavigationStack、NavigationSplitView 或 TabView 渲染,这种间接性是多数搜索问题的根源。\n\n主要能力:用 .searchable(text:) 绑定查询文本,支持 placement 与 prompt;通过环境值 isSearching、dismissSearch 控制搜索结果展示与关闭;用 suggestions 闭包和 .searchCompletion() 实现建议与自动填充;用 .onSubmit(of: .search) 处理提交;iOS 16+ 支持 .searchScopes 分类过滤与搜索 token;iOS 17+ 增加 isPresented、suggestedTokens;iOS 17.1 提供 .searchPresentationToolbarBehavior(.avoidHidingContent);iOS 18+ 用 .searchFocused 程序化激活或关闭搜索。\n\n必要用法:搜索字段必须位于导航容器内,否则不显示;isSearching 必须在 .searchable 视图的子视图中读取;建议项必须加 .searchCompletion(),否则点击无效;token 元素需符合 Identifiable。常用命令与代码保持原样,例如 .searchable(text: $searchText)。\n\n适用场景:列表或集合搜索、输入即过滤、提交式网络搜索、建议补全、scope 分类、token 结构化查询、程序化聚焦。限制:平台行为差异大(iOS、iPadOS、macOS、watchOS、tvOS),placement 可能被忽略;iOS 26 搜索特性见另一个参考;具体价格、收费与更多细节暂未提供。
axiom-swiftui-search-ref
通用与其它
更新于 10-16 00:23