我有一个菜单栏图标,当我单击它时,我想打开一个新窗口。这部分有效。但该窗口有时会被其他窗口覆盖。如何将窗口设置在其他窗口之上?
我想继续尽可能多地使用 SwiftUI。
这是我迄今为止尝试过的:
import SwiftData
import SwiftUI
@main
struct ScreenOnTimeApp: App {
@Environment(\.dismissWindow) private var dismissWindow
@Environment(\.openWindow) private var openWindow
var body: some Scene {
Window("State changes", id: "another-window-id") {
PowerChangesWindow().onAppear {
dismissWindow(id: "another-window-id")
}
}
Window("foobar", id: "foobar") {
VStack {
Text("Some Text ...")
}
.frame(width: 350, height: 250)
}
MenuBarExtra("1", systemImage: "1.circle") {
Button("One") {
// i want the window to be always above other windows...
dismissWindow(id: "foobar")
openWindow(id: "foobar")
}
Button("Two") {
NSApp.activate(ignoringOtherApps: true)
dismissWindow(id: "another-window-id")
openWindow(id: "another-window-id")
}
}
}
}
如果您想要一个“浮动”窗口,在 macOS 15 中,您可以在内容视图上使用
.windowLevel(.floating)
(或在您的情况下使用 VStack)。
对于早期版本,这里有一个解决方案:https://stackoverflow.com/a/77184303/896907