在SwiftUI中,使用HStack时,为什么会导致垂直布局而不是水平布局?

问题描述 投票:0回答:1

我是 SwiftUI 新手。我知道 hstack 是水平布局,但为什么在这种情况下它显示垂直?

 @SceneBuilder
    private func menuBarExtra() -> some Scene {
        
        if #available(macOS 13.0, *)  {

            MenuBarExtra(isInserted: $statusMenu){
                AppMenu()
            } label: {
                let image: NSImage = {
                    let ratio = $0.size.height / $0.size.width
                    $0.size.height = 18
                    $0.size.width = 18 / ratio
                    return $0
                }(NSImage(named: "Finder")!)
                
                Image(nsImage: image)
            }
        }
        
   struct AppMenu: View {
    
      var body: some View {
         HStack{
                Text("1")
                Text("2")
                Text("3")
            }
       }
    }

Macos 菜单栏应用程序: 在此输入图片描述

如何在 MenuBarExtra 中自定义布局?

如何在 MenuBarExtra 中自定义布局?

swift macos swiftui
1个回答
0
投票

垂直对齐是

MenuBarExtra
的默认行为。要使项目水平对齐,您需要更改该样式。

MenuBarExtra(currentNumber, systemImage: "triangle") {
            HStack{
                Text("1")
                Text("2")
                Text("3")
            }
            .frame(width: 100, height: 100)
        }
        .menuBarExtraStyle(.window)
© www.soinside.com 2019 - 2024. All rights reserved.