Nсимаж не меняется для светлых/Темных появлений

#xcode #cocoa #nsimage #nsimageview #macos-darkmode

Вопрос:

Я разрабатываю приложение для Mac Cocoa. И у меня есть набор изображений, которые нужно использовать как для светлого, так и для темного режимов.

Я следовал инструкциям здесь: https://developer.apple.com/documentation/uikit/uiimage/providing_images_for_different_appearances

В viewWillLayout() , я настроил изображение для представления примерно так:

 nsImgaeView.image = NSImage(named: "Image") // Does not change after toggling light/dark mode
 

Но NSImage(named: "Image") просто не меняет свой внешний вид после того, как я переключил режим «свет/темнота» в системных настройках.

Я уверен, что код был вызван, потому что:

 nsImgaeView.image = NSImage(named: "Another_Image") // Changes to another image after toggling
 

Перезапуск приложения действительно приводит к изменению его внешнего вида. Я думаю, это потому, что система кэширует изображение после начальной загрузки?

Комментарии:

1. Скорее всего, вы использовали CGLayer и не обновили его правильным изображением. В вашем коде мало что говорится о «someView.image». Если это NSImageView, он будет работать. Если вы визуализируете изображение вручную -> проверьте наличие проблем там

2. Да, someView относится к типу NSImageView

3. Проверьте свое изображение в каталоге активов.