我正试图让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];
我的窗口将显示内容作为信息面板(以餐厅菜单为准);它不应让计算机上的用户执行任何操作。
是否有任何以故障安全方式实现此目标的提示?我快到了。