我想[NSColor controlAccentColor]
在一些地方使用,但是当用户选择蓝色系统强调色时,我也想回退到一种特殊的蓝色调。
我怎样才能可靠地检测到所controlAccentColor
挑选的类型/名称?
我想[NSColor controlAccentColor]
在一些地方使用,但是当用户选择蓝色系统强调色时,我也想回退到一种特殊的蓝色调。
我怎样才能可靠地检测到所controlAccentColor
挑选的类型/名称?
您可以通过以下方式获取颜色的值:
let accent = UserDefaults.standard.value(forKey: "AppleAccentColor")
当您的系统 Accent Color 设置为蓝色时返回 nil,或者当它设置为其他颜色时返回 Int 值(此处列出的值:如何确定 macOS 10.14 强调色?)
结束了这个:
if (@available(macOS 10.14, *)) {
NSColor *accentColor = [[NSColor controlAccentColor] colorUsingColorSpace:[NSColorSpace deviceRGBColorSpace]];
CGFloat redColor, greenColor, blueColor, alphaColor;
[accentColor getRed:&redColor green:&greenColor blue:&blueColor alpha:&alphaColor];
if (blueColor == 1 && redColor <= 0.1 && greenColor <= 0.5) {
// Our special blue
return [NSColor colorWithRed:52.0 / 255.0 green:109.0 / 255.0 blue:251.0 / 255.0 alpha:0.9]; // pastel blue
}
return [NSColor controlAccentColor];
}