Xcode / plist-始终在macOS上以深色/浅色主题运行应用程序

时间:2020-01-16 19:36:30

标签: swift macos swiftui plist

有一个属性可以使应用始终在黑暗模式下运行-UIUserInterfaceStyle

问题是...。它不适用于macOS。

我尝试设置

  • LIGHT
  • .light
  • 1

文件内部的文件更改正确:

<key>UIUserInterfaceStyle</key>
<string>Light</string>

但是结果始终是相同的-只是不起作用,并且应用程序以主题的系统配置运行。

Xcode:版本11.3.1(11C504)

MacOS:10.15.2(19C57)Catalina

应用基于SwiftUI

3 个答案:

答案 0 :(得分:4)

问题在于UIInterfaceStyle是UIKit功能。它适用于tvOS / iOS。在MacOS上不执行任何操作。您正在编写的是MacOS应用程序,而不是iOS应用程序。因此,您对 Info.plist 所做的更改自然无效。

在MacOS上退出明暗模式的方式完全不同,并在此处进行了记录:

https://developer.apple.com/documentation/appkit/nsappearancecustomization/choosing_a_specific_appearance_for_your_macos_app

基本上,您想使用NSRequiresAquaSystemAppearance键(尽管最好采用暗模式兼容性)。

答案 1 :(得分:0)

如果您正在寻找 SwiftUI 的完整版本:

import SwiftUI

@main
struct SwiftUI_Football_GridApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView().preferredColorScheme(.light)
        }
    }
}

答案 2 :(得分:-1)

第一个解决方案

尝试从设备或模拟器卸载应用程序。确保您清理了项目。右键是'Light',确实是区分大小写的。

好吧,如果那不起作用,您可以做其他事情来达到相同的结果。

第二个解决方案

在下面的AppDelegates的{​​{1}}中调用此代码

didFinishLaunchingWithOptions

请让我知道是否适合您。