我想在一些地方使用[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/

10-13 09:03