我正在尝试使用 SwiftUI 为 macOS 制作一个简单的应用程序,我想添加一个侧边栏。我已经设法完美地制作了一个,但问题是我找不到改变List组件高亮颜色的方法。
如您所见,所选项目是红色的,但我希望它是灰色的,就像在 Finder 等大多数应用程序中一样。
总之,有没有办法使用 SwiftUI 更改 macOS 中列表的突出显示颜色?
请注意我没有使用 Catalyst。
提前致谢
我的代码:
SidebarView.swift
struct SidebarViewItem: View {
let text: String
let image: String
var body: some View {
HStack {
if image == "Folder" || image == "Tray" {
Image(image)
.resizable()
.frame(width: 18, height: 15)
} else if image == "Star" {
Image(image)
.resizable()
.frame(width: 20, height: 18)
} else {
Image(image)
.resizable()
.frame(width: 20, height: 20)
}
Text("\(text)")
}
}
}
struct SidebarView: View {
let items = ["Tray", "Folder", "Star"]
var body: some View {
return List {
Text("Favorites")
.foregroundColor(Color("sidebarAdaptiveColor"))
.font(Font.system(size: 11, weight: .medium))
ForEach(items, id: \.self) { item in
NavigationLink(destination: DetailView(selection: item)) {
SidebarViewItem(text: "\(item)", image: item)
}
}.padding(.leading, 10)
Text("Languages")
.foregroundColor(Color("sidebarAdaptiveColor"))
.font(Font.system(size: 11, weight: .medium))
NavigationLink(destination: DetailView(selection: "Folder")) {
SidebarViewItem(text: "Hello", image: "Folder")
}.padding(.leading, 10)
}
.listStyle(SidebarListStyle())
.frame(maxWidth: .infinity, maxHeight: .infinity)
}
}
Run Code Online (Sandbox Code Playgroud)
内容视图.swift
struct DetailView: View {
var selection: String
var body: some View {
containedView()
.frame(maxWidth: .infinity, maxHeight: .infinity)
}
private func containedView() -> AnyView {
switch selection {
case "Folder":
return AnyView(Text("?"))
case "Star":
return AnyView(Text("View 2"))
case "Gear":
return AnyView(Text("View 3"))
default:
return AnyView(Text("Some view here"))
}
}
}
struct ContentView: View {
var body: some View {
NavigationView {
NotesSidebarView()
.padding(.top)
DetailView(selection: " Apple")
}.navigationViewStyle(DoubleColumnNavigationViewStyle())
.frame(minWidth: 700, maxWidth: .infinity, minHeight: 400, maxHeight: .infinity)
.edgesIgnoringSafeArea(.top)
}
}
Run Code Online (Sandbox Code Playgroud)
小智 2
List您可以使用 SwiftUI 通过修改AccentColor项目资产目录中的轻松更改 macOS 中的突出显示颜色。
Assets.xcassets文件夹。AccentColorasset:这是 SwiftUI 默认情况下用于各种 UI 元素的颜色集,包括 的突出显示颜色List。通过执行此操作,ListSwiftUI macOS 应用程序中组件的突出显示颜色将更改为您选择的灰色。
| 归档时间: |
|
| 查看次数: |
437 次 |
| 最近记录: |