You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在macOS的SwiftUI中实现窗口顶部的多层堆叠工具栏

SwiftUI实现工具栏垂直堆叠的解决方案

默认情况下,SwiftUI中多个.toolbar修饰符会将所有工具栏按钮合并到同一行显示。要实现两组工具栏上下堆叠的效果,只需将两组工具栏内容放入同一个.toolbar修饰符内,并用VStack垂直包裹即可。

修改后的代码示例:

struct ToolbarView: View {
    @ObservedObject var dm: DrawModel
    init(_ dm: DrawModel) { self.dm = dm }
    
    var body: some View {
        VStack{}
            .toolbar {
                ToolbarItemGroup(placement: .navigationBarTrailing) { // 根据需求选择合适的放置位置
                    VStack(alignment: .trailing, spacing: 12) {
                        AddToolbarItems(dm, toolbar1)
                        AddToolbarItems(dm, toolbar2)
                    }
                }
            }
    }
}

补充说明:

  1. 移除原有的两个独立.toolbar修饰符,将所有工具栏内容整合到一个.toolbar中
  2. 使用ToolbarItemGroup指定工具栏的放置位置,比如导航栏右侧.navigationBarTrailing、底部工具栏.bottomBar等
  3. 通过VStack的alignment参数控制每组按钮的对齐方式,spacing参数调整两组工具栏的垂直间距

如果你的AddToolbarItems返回的是分散的单个按钮而非横向排列的视图,可在外层额外包裹HStack确保每组按钮横向排布:

VStack(alignment: .trailing, spacing: 12) {
    HStack(spacing: 16) {
        AddToolbarItems(dm, toolbar1)
    }
    HStack(spacing: 16) {
        AddToolbarItems(dm, toolbar2)
    }
}

内容的提问来源于stack exchange,提问作者Keith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 10:46:07