macOS菜单栏操作
我看过很多关于自定义菜单栏的教程,但没有一个能讲清楚如何实现一个动作,他们都把它留给读者自行去实践。
例如:
@main
struct DemoApp: App {
var body: some Scene {
Window("MyApp", id: mainWindowID) {
ContentView()
}
.commands {
CommandMenu(“Task”) {
Button(“Search Database…”) {
// How do I open SearchDatabaseWindow() from here?
}
}
}
}
}
我可以像下方这样做,但结果会出现在“Window”菜单中;我想让它出现在一个新的“Task”菜单中。
Window("MyApp", id: mainWindowID) {
ContentView()
}
Window("Search Database…", id: searchDatabaseWindowID) {
SearchDatabaseWindow()
}
这可能实现吗?
解决方案
- 使用
openWindow环境值来打开窗口。 - 如果你不想让该窗口出现在窗口列表中,可以使用
commandsRemoved。
@Environment(\.openWindow) var openWindow
var body: some Scene {
WindowGroup {
ContentView()
}
.commands{
CommandMenu("Task") {
Button("Search Database…") {
openWindow(id: "searchDatabaseWindowID")
}
}
}
Window("Search Database…", id: "searchDatabaseWindowID") {
SearchDatabaseView()
}
.commandsRemoved()
}
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。