SwiftUI:搜索大小写字母
SwiftUI: search for lower and upper case letters
我正在关注 this tutorial 在 SwiftUI 中添加搜索栏。
当名称以大写字母开头时我只输入小写字母进行搜索,反之亦然。这是一个 macOS 应用程序。
import SwiftUI
struct ContentView: View {
let names = ["Holly", "Josh", "Rhonda", "Ted"]
@State private var searchText = ""
var body: some View {
ScrollView {
VStack(spacing: 20) {
ForEach(searchResults, id: \.self) { name in
Text(name)
.foregroundColor(.white)
.font(.largeTitle)
.frame(width: 330, height: 100)
.background(Color.red)
}
.searchable(text: $searchText)
}
}
.frame(width: 350,height: 350)
}
var searchResults: [String] {
if searchText.isEmpty {
return names
} else {
return names.filter { [=10=].contains(searchText) }
}
}
}
如果您想忽略大小写,您可以在此行中将搜索条件和您正在搜索的内容转换为小写
return names.filter { [=10=].contains(searchText) }
您可以使用 .lowercased()
method。
有专门的API
return names.filter { [=10=].localizedCaseInsensitiveContains(searchText) }
我正在关注 this tutorial 在 SwiftUI 中添加搜索栏。
当名称以大写字母开头时我只输入小写字母进行搜索,反之亦然。这是一个 macOS 应用程序。
import SwiftUI
struct ContentView: View {
let names = ["Holly", "Josh", "Rhonda", "Ted"]
@State private var searchText = ""
var body: some View {
ScrollView {
VStack(spacing: 20) {
ForEach(searchResults, id: \.self) { name in
Text(name)
.foregroundColor(.white)
.font(.largeTitle)
.frame(width: 330, height: 100)
.background(Color.red)
}
.searchable(text: $searchText)
}
}
.frame(width: 350,height: 350)
}
var searchResults: [String] {
if searchText.isEmpty {
return names
} else {
return names.filter { [=10=].contains(searchText) }
}
}
}
如果您想忽略大小写,您可以在此行中将搜索条件和您正在搜索的内容转换为小写
return names.filter { [=10=].contains(searchText) }
您可以使用 .lowercased()
method。
有专门的API
return names.filter { [=10=].localizedCaseInsensitiveContains(searchText) }