2014-12-23 40 views
3

NSColor有這個方法:菜單文本顏色可可

NSColor.selectedMenuItemTextColor() 

但對於普通(非選擇),菜單項文本的顏色沒有方法。如何確定菜單文本顏色(當前爲普通模式爲黑色,「黑色」模式爲白色)?

我在我的菜單中有一個自定義視圖,它需要使用與其他菜單項相同的文本顏色。


編輯:我目前使用的這一點,但我希望能找到一個textAttributes清潔的解決方案:

let isDark = NSAppearance.currentAppearance().name.hasPrefix("NSAppearanceNameVibrantDark") 
let textAttributes = [ 
    NSForegroundColorAttributeName: isDark ? NSColor.whiteColor() : NSColor.textColor() 
] 
let selectedItemTextAttributes = [ 
    NSForegroundColorAttributeName: NSColor.selectedMenuItemTextColor() 
] 
+0

您是否爲項目背景嘗試過'textColor()'和'textBackgroundColor()'? – Astoria

+0

@Astoria無論菜單設置爲何種顏色,都會使我的視圖變爲白色背景和黑色文本。據我所知,菜單有12種不同的顏色主題,具體取決於系統偏好設置中的外觀和通用訪問設置。我使用它作爲文本背後的背景顏色。 –

回答

1

爲NSColor UND幫助selectedMenuItemColor鏈接:看到訪問系統顏色顏色編程主題。本章講述如何在默認顏色選擇器中打開開發人員顏色。在那裏你還可以找到一個labelColor以及一些未在默認界面中列出的項目。也許其中之一就是你所追求的。

+0

'labelColor'總是黑色的。根據用戶對菜單的選擇,我需要白色或黑色。 –

+0

那我就猜不出來了。 Apple在Apple上免費提供了一兩個支持問題。你有沒有使用它們?那麼,我做了,而且沒用。但希望終於死去.... –

0

答案是在viewDidAppear方法中將視圖的圖層顏色設置爲NSColor.textColor()。您還需要將視圖wantsLayer設置爲true