我想在一些地方使用[NSColor controlAccentColor]
,但是当用户选择“蓝色”系统强调色时,我也希望退回到特殊的蓝色调。
如何可靠地检测所选择的controlAccentColor
的类型/名称?
最佳答案
最终这样:
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];
}
关于cocoa - 如何分辨NSColor控件的名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52584233/