macOS Hight Sierra / Mojave: программно получить значение "Системные настройки -> Специальные возможности -> Дисплей -> Увеличить контраст"

Как программно получить значение параметра Повышение контрастности в macOS Hight Sierra? Также интересно узнать, как наблюдать это изменение значения.

Полный путь к системным настройкам: Системные настройки -> Специальные возможности -> Дисплей -> Увеличить контраст.

введите описание изображения здесь

На MacOS Mojave это может быть достигнуто через effectiveAppearance.bestMatch Вызов API, как показано ниже.

open override func layout() {
  super.layout()
  if #available(OSX 10.14, *) {
     if let value = effectiveAppearance.bestMatch(from: [.aqua, .darkAqua, .accessibilityHighContrastAqua, .accessibilityHighContrastDarkAqua]) {

        switch value {
        case .aqua:
           setupAppearance(.light)
        case .darkAqua:
           setupAppearance(.dark)
        case .accessibilityHighContrastAqua:
           setupAppearance(.highContrastLight)
        case .accessibilityHighContrastDarkAqua:
           setupAppearance(.highContrastDark)
        default:
           break
        }

     }
  }
}

1 ответ

Начиная с MacOS 10.10 вы можете использовать этот API NSWorkspace.

https://developer.apple.com/documentation/appkit/nsworkspace/1526290-accessibilitydisplayshouldincrea

Другие вопросы по тегам