首页 > 解决方案 > 如何使用 swiftui 中的搜索栏过滤列表

问题描述

如何使用 SwiftUI 中的搜索栏过滤列表。

这是我到目前为止所做的,它显示了列表中的所有信息,但列表没有过滤信息。

ForEach(
  (0..<self.appData.myJobs.count).filter(
    { "\($0)".contains(searchBar.text) || searchBar.text.isEmpty  }), 
  id: \.self) { index in

谢谢。

标签: swiftswiftuiswiftui-list

解决方案


现在您尝试过滤索引(例如 1、2、3...),但我假设您尝试通过一些文本进行过滤,所以它应该类似于(我现在没有您的 Job 属性,所以这只是假设,但想法应该很清楚)

ForEach(
  (0..<self.appData.myJobs.count).filter({ i in // << here you get index 
      // assuming you have .jobTitle property in Job and want to filter by it
      // so just substitute your property
      self.appData.myJobs[i].jobTitle.contains(searchBar.text) || 
      searchBar.text.isEmpty }), 
  id: \.self) { index in

推荐阅读