macOS SwiftUI 如何在菜单栏右侧放置ToolbarItem?
问题原因
navigationBarTrailing 是iOS、iPadOS平台专属的ToolbarItem placement枚举值,macOS平台未提供该枚举,因此会触发编译错误。
正确实现方案
方案1:适配SwiftUI 3+( macOS 12及以上版本)
直接使用primaryAction枚举值即可,该值在macOS上默认会将控件排布在工具栏右侧区域:
ToolbarItem(placement: .primaryAction) { // 你的自定义控件内容 }
如果需要同时放置多个右侧控件,可以用ToolbarItemGroup包裹:
ToolbarItemGroup(placement: .primaryAction) { Button("操作1") { // 业务逻辑 } Button("操作2") { // 业务逻辑 } }
方案2:跨平台兼容写法
如果你的项目需要同时适配iOS和macOS,可以使用编译宏区分平台使用对应的枚举值:
ToolbarItem(placement: { #if os(iOS) return .navigationBarTrailing #elseif os(macOS) return .primaryAction #endif }()) { // 控件内容 }
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

