Как иметь окно (представление) на ма c ОС, чтобы всегда быть сверху, а также открываться на любом другом рабочем столе (SwiftUI MACOS) - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть вид, называемый боковой панелью. Идея состоит в том, чтобы этот вид всегда был сверху, независимо от того, находится ли пользователь в полноэкранном режиме в другом приложении или на другом рабочем столе.

Я успешно достиг вершины всегда на том же рабочем столе, которое открывало приложение, но не в полноэкранном режиме. Это мой код:

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() всегда быть на вершине, несмотря ни на что, независимо от того, находится ли пользователь в полноэкранном режиме в другом приложении или на другом рабочем столе?

Извините если неясно.

Большое спасибо, любая помощь будет оценена!

...