NSWOS中的makeKey()在macOS中无效

时间:2017-11-11 05:26:19

标签: swift macos nswindow

在我的菜单栏应用程序中,我有一个打开窗口的菜单项。窗口在前面打开,窗口后面的窗口仍然是关键窗口。

我不能让window.makeKey()工作,除非我在断点后运行它。我尝试将代码行放在窗口生命周期的不同位置,甚至将它放在DispatchQueue.main.asyncAfter(deadline: execute:)中,但它不起作用。

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

1 个答案:

答案 0 :(得分:1)

原来我需要将这一行放在打开窗口的菜单项的IBAction中:

NSApplication.shared.activate(ignoringOtherApps: true)

这使它成为打开时的关键窗口,因此我无需致电window.makeKey()