swift `List`未在`MenuBarExtra`中呈现

dm7nw8vv  于 2023-05-21  发布在  Swift
关注(0)|答案(1)|浏览(99)

我是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")
        }
    }
}
vmdwslir

vmdwslir1#

您将需要使用window菜单栏额外样式,而不是menu菜单栏额外样式。文档将window样式描述为“与菜单样式提供的类似菜单的布局相比,控件的样式和布局类似于包含在普通窗口中的控件”。
因此它允许呈现您的自定义列表,而menu样式在哪些方面有类似的限制

相关问题