我正在使用搜索栏,以允许用户根据他输入的内容过滤列表。
但是如何允许“ @”用户提及第二个搜索此列表?
这是我的尝试,但是不起作用:
var searchText = ""
var body : some View{
List(observedData.datas.filter{
$0.msg.lowercased().contains(searchText.lowercased()) || searchText.lowercased() == "" ||
$0.name.lowercased().contains("@"+searchText.lowercased()) || "@"+searchText.lowercased() == ""
}
))
{
i in
VStack(alignment: .leading){
CellCard(userId:i.userId,user: i.name)
}
}
.listStyle(GroupedListStyle())
.environment(\.horizontalSizeClass, .regular)
}
最佳答案
这样解决:
$0.msg.lowercased().contains(searchText.lowercased()) || "@\($0.name)".lowercased().contains(searchText.lowercased()) || searchText.lowercased() == ""