Obj-C - программная установка внешнего вида NSWindow в NSAppearanceNameVibrantDark, не работает - PullRequest
0 голосов
/ 28 августа 2018

Использование XCode версии 9.4.1 (9F2000) Я хотел бы динамически разрешить пользователю изменять тему приложения Mac с «Светлой» на «Темный» и т. Д., Но я падаю на первое препятствие.

Я попытался поместить следующий код в методы applicationDidFinishLaunching и ViewController viewDidLoad, но ни один из них не привел к изменению темы на Темную тему.

NSAppearance* appearance = [NSAppearance appearanceNamed:NSAppearanceNameVibrantDark];
    [self.window setAppearance:appearance];

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

D. * * +1010

1 Ответ

0 голосов
/ 29 августа 2018

Я смог заставить его работать, переместив мой код в viewWillAppear контроллера (как в примере ниже). Тогда все тематически правильно!

- (void)viewWillAppear {
    [super viewWillAppear];

    NSAppearance* appearance = [NSAppearance appearanceNamed:NSAppearanceNameVibrantDark];
    [self.view.window setAppearance:appearance];
}
...