在我的 macOS 应用程序上,顶部有一个主工具栏。 但是,我想在底部添加一个新的底部工具栏(较小)。
似乎在 macOS 上无法像在 iOS 上那样做到这一点:
.toolbar {
ToolbarItemGroup(placement: .bottomBar) {
// add wine
AddButton()
Spacer()
}
}
.bottomBar 在 macOS 上不存在。
好吧,在使用一些按钮创建自定义视图/内容之前,我想确保在 macOS 上没有官方方法可以做到这一点(仅使用 SwiftUI...)。
我喜欢 Apple 在 SwiftUI 中声明性的统一工具栏 API。请参阅此处和此处。它允许多平台开发人员灵活地设计她想要的应用程序 - 但有一个不幸的例外:它不允许在 macOS 上使用底部工具栏。我得到 @Alex Fringes 和 @aehlke 的观点,该例外符合 Apple 的官方人机界面指南,该指南规定,对于 iPadOS 和 macOS,工具栏应仅出现在窗口顶部。但是,恕我直言,这个指南没有任何意义——至少对于我的应用程序来说是这样。在我的应用程序中,我有许多按钮和滑块,可以让用户对显示进行大量控制。这些项目在逻辑上分为两组。因此,我的应用程序将一组放置在顶部,另一组放置在底部是有意义的。然而,由于 macOS 缺乏对 .bottomBar 的支持,我无法使用 SwiftUI 的 Toolbar API。我必须手动实现这一切。
可笑的是,我可以在小屏幕设备(例如我的 iPhone)上同时拥有顶部和底部工具栏,但在大屏幕设备(例如我的 Mac)上却不能。我希望苹果能解决这个问题!
您可以使用 safeAreaInsets 代替
.safeAreaInset(edge: .bottom, content: {
// Buttons go here
// add padding and background
}