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

And*_*rew 4 macos plist swift swiftui

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

问题是......它在 macOS 上不起作用。

我尝试过设置

  • 。光
  • 1

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

<key>UIUserInterfaceStyle</key>
<string>Light</string>
Run Code Online (Sandbox Code Playgroud)

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

Xcode:版本 11.3.1 (11C504)

MacOS: 10.15.2 (19C57) 卡塔琳娜

应用程序基于 SwiftUI

eri*_*kva 9

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

import SwiftUI

@main
struct SwiftUI_Football_GridApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView().preferredColorScheme(.light)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


mat*_*att 5

问题是 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 键(尽管最好采用深色模式兼容性)。