今天发现NSWindow并没有显示在其他的全屏窗口之上,做以下改动实现了显示在其他全屏窗口的上方。
1.不使用 NSWindow,而使用 NSPanel。
2.修改 NSWindow.Level 为 modalPanel。
window?.level = .modalPanel
3.设置 collectionBehavior 为 canJoinAllSpaces 和 fullScreenAuxiliary。
window?.collectionBehavior = [.canJoinAllSpaces, .fullScreenAuxiliary]
4.设置 styleMask 为 borderless 和 nonactivatingPanel。
window?.styleMask = [.borderless, .nonactivatingPanel]
最终实现窗口居于其他全屏应用之上。
效果: