如何在 Swift for macOS 中创建具有左、中、右组件的“工具栏”?

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

我正在 SwiftUI 中为 macOS 编写一个音乐应用程序,希望它的工具栏表现如下:标题位于左侧的图稿,中间的播放控件,右侧的检查器切换,如下所示。不过,好像不能同时正确铺设。

enter image description here

因此,我在这里编写了一个小演示来重现我的问题。

struct ContentView: View {
    var body: some View {
        Text("Hello, world!")
            .toolbar {
                ToolbarItem(placement: .navigation) {
                    Button("Left") { }
                }
                ToolbarItem(placement: .principal) {
                    Button("Center") { }
                }
                ToolbarItem(placement: .primaryAction) {
                    Button("Right") { }
            }
        }
    }
}

正确的按钮显示在错误的位置。但如果我删除左侧和中心按钮,右侧按钮将按预期正确显示在窗口右侧。

如何解决这个问题,并同时显示左、中、右组件?

enter image description here

swift macos swiftui appkit
2个回答
3
投票

您可以添加仅包含

ToolbarItem
Spacer

.toolbar {
    ToolbarItem(placement: .navigation) {
        Button("Left") { }
    }
    ToolbarItem(placement: .principal) {
        Button("Center") { }
    }
    ToolbarItem {
        Spacer()
    }
    ToolbarItem(placement: .primaryAction) {
        Button("Right") { }
    }
}

0
投票
.toolbar {
    ToolbarItem(placement: .navigation) {
        Button("Left") { }
    }
    ToolbarItem(placement: .principal) {
        Button("Center") { }
    }
    ToolbarItemGroup(placement: .primaryAction) {
        Spacer()
        Button("Right") { }
    }
}

我认为 Joakim 的答案可以改进一点。我们可以将其包装在 ToolbarItemGroup 中,而不是创建 2 个 ToolbarItem。

© www.soinside.com 2019 - 2024. All rights reserved.