在 SwiftUI 视图中单击按钮时显示 NSMenu

Show NSMenu when clicking on a Button in SwiftUI view

我试图在 SwiftUI 视图中单击按钮时显示 NSMenu,但我正在使用的代码没有显示任何内容。这是:

HStack {
    Spacer(minLength: 100)
    Button(action: {
        let menu = NSMenu()
        menu.addItem(
            withTitle: "Quit",
            action: #selector(NSApp.terminate(_:)),
            keyEquivalent: "q")
        menu.popUp(
            positioning: nil,
            at: NSPoint.init(x: 50, y: 50),
            in: nil)
        }, label: {
            Image(systemName: "gear")
        })
        .buttonStyle(PlainButtonStyle()))
}

什么都没有显示,但我很确定我遗漏了一些重要的东西。

根据评论中vanadian的建议,方法是使用菜单获取结果。我是这样做的:

HStack {
    Spacer(minLength: 100)
    
    Menu("") {
        Button("Menu.Preferences".localized) {
            NSApp.sendAction(Selector(("showPreferencesWindow:")), to: nil, from: nil)
        }
        Divider()
        Button("Menu.Quit".localized) {
            NSApp.terminate(self)
        }
    }
    .frame(width: 30)
    .menuStyle(BorderlessButtonMenuStyle())
}

这是达到我想要的结果的 SwiftUI 解决方案。