【问题标题】:How to detect the "Accessibility Reduce Transparency" In macOS (Objective-C)?如何检测 macOS(Objective-C)中的“可访问性降低透明度”?
【发布时间】:2020-12-10 03:10:44
【问题描述】:

默认情况下,macOS11.0 Big Sur 在 Accessibility 上将“降低透明度”设置为 true。这使得浅色状态菜单与深色菜单几乎相同,从而使我的应用程序的状态菜单栏图标的设置成为一项挑战。

在 iOS 上,一个简单的 UIKit 函数就可以解决问题:

if (UIAccessibilityIsReduceTransparencyEnabled()){
    //use the icon for dark mode although we are in light mode now
}

但没有办法在 macOS 上实现它,尽管 Apple 文档指出可用性是 iOS 8.0+ 和 macOS Catalyst 13.0+

有什么想法吗?谢谢!

【问题讨论】:

    标签: uikit accessibility macos-darkmode


    【解决方案1】:

    您可以使用defaults read com.apple.universalaccess reduceTransparency 命令。如果已启用,则为 1,如果未启用,则为 0。在 Objective-C 中看起来像这样:

    - (BOOL)isTransparencyEnabled {
      Boolean keyExists = false;
      Boolean transparencyEnabled = CFPreferencesGetAppBooleanValue( CFSTR("reduceTransparency"), CFSTR("com.apple.universalaccess"), &keyExists);
      return keyExists && transparencyEnabled;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-07
      • 2014-05-31
      • 1970-01-01
      • 2020-05-04
      • 1970-01-01
      • 2018-01-31
      • 1970-01-01
      相关资源
      最近更新 更多