带有 SwiftUI 的 macOS 底部的工具栏

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

在我的 macOS 应用程序上,顶部有一个主工具栏。 但是,我想在底部添加一个新的底部工具栏(较小)。

例如:

似乎在 macOS 上无法像在 iOS 上那样做到这一点:

.toolbar {          
                ToolbarItemGroup(placement: .bottomBar) {
                    // add wine
                    AddButton()
                    Spacer()
                }
            }

=> .bottomBar 在 macOS 上不存在。

好吧,在使用一些按钮创建自定义视图/内容之前,我想确保在 macOS 上没有官方方法可以做到这一点(仅使用 SwiftUI...)。

macos swiftui toolbar
2个回答
4
投票

我喜欢 Apple 在 SwiftUI 中声明性的统一工具栏 API。请参阅此处此处。它允许多平台开发人员灵活地设计她想要的应用程序 - 但有一个不幸的例外:它不允许在 macOS 上使用底部工具栏。我得到 @Alex Fringes 和 @aehlke 的观点,该例外符合 Apple 的官方人机界面指南,该指南规定,对于 iPadOS 和 macOS,工具栏应仅出现在窗口顶部。但是,恕我直言,这个指南没有任何意义——至少对于我的应用程序来说是这样。在我的应用程序中,我有许多按钮和滑块,可以让用户对显示进行大量控制。这些项目在逻辑上分为两组。因此,我的应用程序将一组放置在顶部,另一组放置在底部是有意义的。然而,由于 macOS 缺乏对 .bottomBar 的支持,我无法使用 SwiftUI 的 Toolbar API。我必须手动实现这一切。

可笑的是,我可以在小屏幕设备(例如我的 iPhone)上同时拥有顶部和底部工具栏,但在大屏幕设备(例如我的 Mac)上却不能。我希望苹果能解决这个问题!


0
投票

您可以使用 safeAreaInsets 代替

 .safeAreaInset(edge: .bottom, content: {
    // Buttons go here
    // add padding and background
  }
© www.soinside.com 2019 - 2024. All rights reserved.