Темный режим macOS и NSAboutPanelOptionCredits

У меня есть довольно прямое приложение под названием Range в магазине приложений, которое я хочу сделать темным режимом, совместимым с macOS 10.14. Я заметил, что окно "О программе" не меняет все цвета текста.

Я использую NSAboutPanelOptionCredits, где мне просто нужно связать файл Credits.rtf, а приложение обрабатывает все остальное.

https://developer.apple.com/documentation/appkit/nsaboutpaneloptioncredits?language=objc

Проблема в том, что, когда я переключаюсь в темный режим, текст в файле остается черным, в то время как другой автоматически включаемый текст становится белым (имя приложения, версия и т. Д.). Я открыл файл.rtf и нет наследования или что-то в этом роде.

Есть идеи, что я делаю неправильно и / или отсутствует?

Цени любые мысли. Спасибо!

3 ответа

Решение

Хитрость заключается в использовании семантических цветов.

Используя XCode, отредактируйте свой файл RTF. Выделите текст и откройте палитру цветов текста.

Xcode добавляет цвета разработчика в палитру цветов. Выберите подходящий семантический цвет для вашего текста; Я склонен использовать labelColor, secondaryLabelColor, а также linkColor,

Когда вы переключаетесь в темный режим, эти семантические цвета меняются соответствующим образом.

Для кого это нужно..

когда открывается:

Примечания к выпуску 10.14 AppKit могут быть полезны:

Внешние кредиты

Вы делаете так, чтобы область кредитов соответствовала внешнему виду приложения, предоставляя кредиты в виде приписанной строки или помещая Credits.rtf или Credits.rtfd в комплект вашего приложения. Используйте правильные системные цвета, такие как textColor, linkColor и labelColor, чтобы правильно отображать текст в любом виде. Если вы используете файлы.rtf или.rtfd для предоставления текста для области кредитов, файл должен быть сохранен с использованием macOS 10.14 (бета-версия 5 или более поздняя), чтобы получить обработку с учетом внешнего вида. Если вы создаете файл.rtf или.rtfd в более ранней версии macOS, обработка с учетом внешнего вида применяется только в том случае, если файл содержит только черный текст без цвета фона.

Ты можешь попробовать

label.accessibilityIgnoresInvertColors = true
Другие вопросы по тегам