MacOS Изменить значок строки меню с помощью swift 4

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

У меня есть весь мой код, который устанавливает значок строки меню в AppDelegate в applicationDidFinishLaunching. Итак, мой вопрос: есть ли способ проверить, был ли активирован темный режим, а затем изменить значок с помощью Swift 4?

Я старался:

var inDarkMode: Bool {
  let mode = UserDefaults.standard.string(forKey: "AppleInterfaceStyle")
  return mode == "Dark"
}

а затем оператор if вокруг

button.image = NSImage(named: NSImage.Name(rawValue: "StatusBarButtonImage"))

но поскольку код находится в applicationDidFinishLaunching, это будет проверяться только один раз.

Любая помощь очень ценится.


person Tobias    schedule 11.10.2018    source источник
comment
Что вам нужно, так это настроить ваши изображения для разных видов. developer.apple.com/documentation/appkit/images_and_pdf/   -  person Leo Dabus    schedule 12.10.2018


Ответы (1)


Как указал Лео в комментариях, документы Apple ясно объясняют процесс:

  1. откройте каталог ресурсов и добавьте новый ресурс изображения.
  2. в правом боковом меню щелкните раскрывающийся список Внешний вид:

введите здесь описание изображения

По умолчанию это должен быть Любой. Измените его на Любой, Темный или Любой, Светлый, Темный, чтобы настроить значки, которые вы хотите использовать для каждый случай.

person LinusGeffarth    schedule 03.05.2019