我想在一些地方使用[NSColor controlAccentColor]
,但是当用户选择“蓝色”系统配色时,我也希望退回到特殊的蓝色调。
如何可靠地检测所选择的controlAccentColor
的类型/名称?
答案 0 :(得分:0)
结束于此:
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];
}
答案 1 :(得分:0)
您可以使用以下方法获取颜色的值:
let accent = UserDefaults.standard.value(forKey: "AppleAccentColor")
当您的系统“重音颜色”设置为蓝色时,它返回nil;而当系统重音颜色设置为其他颜色时,它返回Int值(此处列出的值:How can I determine the macOS 10.14 accent color?)