为什么 key 和 main window 不是 top window?

Why key and main window not be the top window?

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

我发现,如果第一个 window 关闭,有序的 Window 将只有第二个 Window。

但是如果第一个 window 仍然打开,即使我已经将第二个 window 设置为 key 和 main,但是 orderedWindows 将是 {firstWindow, 第二Window}

但我希望第二个 window 成为前面的那个。

我也让第二个Window这样做:

  [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];一旦执行,如果第一个 window 仍在屏幕上,那么 windowOrdered 将是 {firstWindow, secondWindow},所以我认为 orderFront 不起作用?

"key" 和 "main" 都与排序无关。如果你想做一个window有序的前面,那么方法就是[NSWindow orderFront:]。有一种常用的便捷方法:[NSWindow makeKeyAndOrderFront:].