Xcode / plist - всегда запускать приложение в темной / светлой теме на macOS - PullRequest
1 голос
/ 16 января 2020

Существует свойство, позволяющее приложению всегда работать в темном режиме - UIUserInterfaceStyle

проблема в ... ... это не работает на macOS.

Я пытался установить

  • LIGHT
  • Light
  • light
  • .light
  • 1

изменения файла внутри файла верны:

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

Но результат всегда одинаков - он просто не работает и приложение работает с системной конфигурацией темы.

XCode: версия 11.3.1 (11C504)

MacOS: 10.15.2 (19C57) Catalina

Приложение основан на SwiftUI

Ответы [ 2 ]

3 голосов
/ 17 января 2020

Проблема в том, что 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 (хотя было бы лучше просто принять совместимость с темным режимом).

0 голосов
/ 17 января 2020

Первое решение

Попробуйте удалить приложение с устройства или симулятора. Убедитесь, что вы очистили проект. Правильная клавиша: 'Light' , действительно, чувствительна к регистру.

Хорошо, если это не работает, вы можете делать другие вещи, которые достигают того же результата.

Второе решение

Назовите этот код ниже в AppDelegates didFinishLaunchingWithOptions

if #available(iOS 13, *) {
    window.overrideUserInterfaceStyle = .light
}

Пожалуйста, дайте мне знать, если это сработает для вас.

...