我是Swift、SwiftUI和AppKit的新手。
我正在使用MenuBarExtra
为macOS创建一个菜单栏应用。
为什么List
不能在MenuPanel
中渲染?
// MacOSSoundUtilityApp.swift
import SwiftUI
@main
struct MacOSSoundUtilityApp: App {
var body: some Scene {
MenuBarExtra("Utility App", systemImage: "hammer") {
MenuPanel()
}
.menuBarExtraStyle(.menu)
}
}
// MenuPanel.swift
import Foundation
import SwiftUI
struct SomeApp: Identifiable {
let name: String
let id = UUID()
}
struct MenuPanel: View {
var applications = [SomeApp(name: "app 1"), SomeApp(name: "app 2"), SomeApp(name: "app 3")]
var body: some View {
VStack {
Text("Utility App")
.font(.title)
List {
Text("option1")
Text("option2")
Text("option3")
}
List (applications) {
Text($0.name)
}
Text("Hello")
}
}
}
1条答案
按热度按时间vmdwslir1#
您将需要使用
window
菜单栏额外样式,而不是menu
菜单栏额外样式。文档将window
样式描述为“与菜单样式提供的类似菜单的布局相比,控件的样式和布局类似于包含在普通窗口中的控件”。因此它允许呈现您的自定义列表,而
menu
样式在哪些方面有类似的限制