我打开一个带有以下内容的窗口:
NSRect screenRect = [[NSScreen mainScreen] frame];
[super initWithContentRect:screenRect
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreBuffered
defer:NO];
int windowLevel = CGShieldingWindowLevel();
[self setLevel:windowLevel];
...所以窗口是全屏的,并且高于所有其他窗口级别(包括模式窗口)。我稍后想显示一个打开的面板,但是下面打开了我在上面创建的窗口下方的对话框(似乎 runModal 的东西覆盖了我尝试设置的请求的窗口级别):
NSOpenPanel *OP = [NSOpenPanel openPanel];
int windowLevel = CGShieldingWindowLevel();
[OP setLevel:windowLevel];
int returnCode = [OP runModal];
...下面会在上面创建的窗口上打开一个工作表(很好),但它最终也会显示我之前隐藏的菜单栏(不是我想要的):
NSOpenPanel *OP = [NSOpenPanel openPanel];
[OP beginSheetModalForWindow:[self window]
completionHandler:^(NSInteger returnCode) {
NSLog(@"completionHandler called with %d", returnCode);
}];
...所以我的问题是:
- 有谁知道如何打开上方的模式窗口
CGShieldingWindowLevel
? - 有没有办法让菜单栏不显示在我上面尝试的工作表解决方案上?
谢谢大家:-)