NSWindow - предотвращение полноэкранного режима любой ценой - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь заставить NSWindow быть невероятно упрямым и полностью игнорировать полноэкранные запросы других приложений.

Короче говоря, я хочу, чтобы мое приложение доминировало над вторым монитором и,даже если один (например) переключится на Finder и выберет View > Enter Full Screen, мое окно останется на месте.В настоящее время он переходит к полноэкранному окну поиска.

Прикрепленный код, который я придумал до сих пор:

CGRect boardFrame = ...
NSArray <NSScreen *> *myScreens = [NSScreen screens];
NSScreen *s = [myScreens objectAtIndex:1];
NSWindow *window = [[NSWindow alloc] initWithContentRect:boardFrame
                                               styleMask:NSWindowStyleMaskBorderless
                                                 backing:NSBackingStoreBuffered
                                                   defer:NO
                                                  screen:s];
[window setLevel:NSMainMenuWindowLevel+2];  // remove menu bar
[window makeKeyAndOrderFront:NSApp];
[window setCanHide:NO];
[window setOpaque:YES];                     // speed up rendering
[window setHasShadow:NO];

В моем окне будет отображаться содержимое в видеинформационное табло (представьте: меню ресторана);он не должен уступать тому, что будет делать пользователь на компьютере.

Есть ли какие-либо советы по обеспечению этого безотказным образом? Я почти на месте.

...