macOS 中的 NSWindow makeKey() 不工作

NSWindow makeKey() in macOS not working

在我的菜单栏应用程序中,我有一个打开 window 的菜单项。 window 在前面打开,后面的 window 保留键 window。

我无法让 window.makeKey() 工作,除非我在断点后 运行 它。我试着把这行代码放在 window 生命周期的不同地方,甚至放在 DispatchQueue.main.asyncAfter(deadline: execute:) 里也没用。

我也尝试过使用 window.makeKeyAndOrderFront(sender:)。 属性 window.canBecomeKey 为真。

原来我需要将此行放在打开 window 的菜单项的 IBAction 中:

NSApplication.shared.activate(ignoringOtherApps: true)

这使它成为打开时的关键 window,所以我不必调用 window.makeKey()