0

我在 Light Mode 下使用 macOS。我不喜欢黑暗模式。

我正在使用 Xcode。一切都处于灯光模式,每个人都很开心。

我正在创建一个 macOS 应用程序,我想在暗模式下测试该应用程序。

有没有办法将参数或其他东西传递给应用程序以强制它在暗模式下运行?

4

2 回答 2

3

老问题,但我今天遇到了同样的情况。

理想情况下,能够在您的方案中设置环境变量以打开暗模式会很好。

所以我做了一些探索。

Xcode 中在调试时更改外观的设置似乎使用了私有NSSystemAppearanceProxy对象。通过从 AppDelegate 设置此对象的外观,您可以在启动时影响特定外观。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
#if DEBUG // do not include in production code! 
    if ([NSProcessInfo.processInfo.environment[@"UserInterfaceStyle"] isEqualToString:@"Dark"]){
        id proxy = [NSClassFromString(@"NSSystemAppearanceProxy") valueForKey:@"systemProxy"];
        [proxy setValue: [NSAppearance appearanceNamed:NSAppearanceNameDarkAqua] forKey:@"appearance"] ;
    }
#endif
}

然后添加一个环境变量UserInterfaceStyle,它的值Dark让你感到羞耻。(随意关闭或开启)

请注意,通过在代理而不是 NSApp 对象上设置外观,您仍然可以使用 Xcode 中的运行时外观设置来切换到轻量模式。

于 2020-08-21T17:47:43.660 回答
1

您可以在 Automator 中进行快速操作并使其运行切换暗模式的 AppleScript。AppleScript 只是:

tell application "System Events"
    tell appearance preferences
        set dark mode to not dark mode
    end tell
end tell

然后去System Preferences - Keyboard - Shortcuts - Services设置一个键盘快捷键来运行你的 AppleScript。

可能有一种更简单的方法可以在 Xcode 中传递参数以强制在暗模式下运行,但这是一个临时解决方案。

于 2018-12-29T19:46:04.403 回答