我正在撰寫一個應用程式,我希望有一個默認顏色,然后用戶可以用他們自己的選擇覆寫它。這適用于 iOS,但我意識到 macOS 版本不會讓我覆寫強調色。
為了演示這個,我創建了一個迷你專案并將資產設定為粉紅色,這樣強調色是什么就很明顯了(注意,如果我不這樣做,它只會保持默認藍色)

然后我在主 ContentView 中添加了一個簡單的串列,這樣我就可以看到強調色。我的代碼是:
struct ContentView: View {
let myListitems = [
"one", "two", "another", "and more"
]
@State var selectedItem:String?
var body: some View {
VStack {
Text("Hello, world!")
.padding()
List(myListitems, id: \.self, selection: $selectedItem) { item in
Text(item)
}
}
}
}
然后,我嘗試在主 WindowGroup 部分和(單獨)在 ContentView 頁面上將強調色設定為藍色。兩者都不會影響粉紅色的口音。
顯示代碼更改的影像:

您知道有什么方法可以覆寫此強調色(無論是藍色還是用戶在資產中定義的顏色)?我希望用戶能夠更改整個應用程式的顏色,但現在看不到如何影響視圖。
謝謝你的幫助
uj5u.com熱心網友回復:
用戶可以在系統偏好中通過改變強調色和高亮顏色來做到這一點,多色表示使用應用程式定義的顏色,其他顏色表示在每個應用程式中都使用該顏色。你不需要做任何事情,它開箱即用。
如果您需要自定義 UI 元素,您可以通過 NSColor.controlAccentColor 和 NSColor.selectedContentBackgroundColor 參考這些顏色。據我所知,SwiftUI 只有 Color.accentColor 開箱即用,但您可以使用 NSColor 物件實體化 Color。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/467998.html
