Как сказать имя элемента управления NSColorAccentColor - PullRequest
0 голосов
/ 01 октября 2018

Я хотел бы использовать [NSColor controlAccentColor] в некоторых местах, однако я также хотел бы использовать специальный оттенок синего, когда пользователь выбирает синий цвет системного акцента.

Как мне надежноопределить тип / имя controlAccentColor выбранного?

1 Ответ

0 голосов
/ 01 октября 2018

Закончено этим:

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];
}
...