为什么键和主窗口不是顶窗?

时间:2016-03-10 12:16:50

标签: macos nswindow

osx-我有两个窗户, 我最初将第一个窗口设置为关键窗口, 然后将第二个窗口设置为关键窗口, 然后我调用[NSApp activateIgnoringOtherApps:Yes]。 我打印[[NSApplication sharedApplication] orderedWindows];

我发现,如果第一个窗口关闭,orderedWindows将只是第二个窗口。

但是如果第一个窗口仍然打开,即使我将第二个窗口设为key和main,但orderedWindows将为{firstWindow,secondWindow}

但我希望第二个窗口位于前面。

我也让第二个窗口做到这样:

  [captureWindow setLevel:NSStatusWindowLevel + 2];
  [captureWindow setReleasedWhenClosed:YES];
  [captureWindow setAcceptsMouseMovedEvents:YES];
  [captureWindow setMovableByWindowBackground:NO];
  [captureWindow makeKeyAndOrderFront:self];
  [captureWindow orderFrontRegardless];
  [captureWindow orderFront:self];
  [captureWindow makeKeyWindow];
  [captureWindow makeMainWindow];
  [NSApp activateIgnoringOtherApps:YES];

但是当[NSApp activateIgnoringOtherApps:YES]时;一旦执行,如果第一个窗口仍然在屏幕上,那么windowOrdered将是{firstWindow,secondWindow},所以我认为orderFront不起作用?

1 个答案:

答案 0 :(得分:1)

“key”和“main”都与排序无关。如果要在前面排序窗口,则方法为[NSWindow orderFront:]。有一种常用方法可以同时执行:[NSWindow makeKeyAndOrderFront:]