首页 > 解决方案 > 如何让 mac os 上的窗口(视图)始终位于顶部并在所有其他桌面上打开(SwiftUI MACOS)

问题描述

我有一个叫做侧边栏的视图。这个想法是无论如何,无论用户当前是在不同应用程序的全屏还是不同的桌面上,都让这个视图始终位于顶部。

我已经成功地在应用程序打开的同一个桌面上实现了始终在顶部,但不是在全屏时。这是我的代码:

var sidebarWindow:NSWindow
let window = NSRect(x: 0, y: 0, width: 0, height: 0)

sidebarWindow = NSWindow(
        contentRect: window,
        styleMask: [.titled,.miniaturizable],
        backing: .buffered, defer: false)

...

sidebarWindow.level = .floating
sidebarWindow.makeKeyAndOrderFront(nil)

...

   if let myScreen = NSScreen.main {
        let windowFrame = myScreen.frame
        let h = windowFrame.size.height
        let w = windowFrame.size.width
        sidebarWindow.setFrameOrigin(NSPoint(x: w-55, y:  h/2-180))
    }

    sidebarWindow.contentView = NSHostingView(rootView: SideBar(thisWindow: sidebarWindow))

但是,如上所述,Sidebar()当我全屏输入其他应用程序以及将桌面更改为其他桌面时,此 (sidebarWindow) 不可见。

SideBar()无论如何,无论用户当前是全屏显示不同的应用程序还是不同的桌面,我如何才能始终保持领先?

抱歉,如果不清楚。

非常感谢,任何帮助将不胜感激!

标签: swiftxcodemacosswiftuinswindow

解决方案


推荐阅读