我正在使用NSWindow
并将其级别设为NSStatusWindowLevel
:
[aWindow setLevel:NSStatusWindowLevel];
现在,当我出示一张工作表(self
是我的工作表窗口)
modalAnswer = 0;
[NSApp beginSheet:self modalForWindow:aWindow modalDelegate:self didEndSelector:NULL contextInfo:nil];
[self makeKeyAndOrderFront:nil];
然后窗口没有显示在停靠栏上方,它隐藏在下面(意味着NSStatusWindowLevel
不再起作用)。
我已经尝试更改工作表窗口的级别,但它不起作用。
是什么导致了这个问题?
答案 0 :(得分:0)
我要求技术支持,他们发现这是一个愚蠢的错误:工作表通常是模态的,但我自己也是模态的。
beginModalSessionForWindow和runModalSession的组合是这里的问题。 它似乎正在服务于默认的运行循环,这导致菜单栏和Dock出现在窗口上。
我对你为什么要调用beginSheet:modalForWindow,然后使用NSApp的beginModalSessionForWindow感到有点困惑。为什么要手动添加模态会话?表格自动模态到它所附加的任何窗口。我习惯于看到使用“beginModalSessionForWindow”而没有床单。