ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

swiftui-ui-patterns - macos-settings

2026/10/7 2:38:44 拓冰建站 浏览量
swiftui-ui-patterns - macos-settings macOS 设置意图在构建由 SwiftUI 的Settings场景支持的 macOS 设置窗口时使用。核心模式在App中声明 Settings 场景并且只在 macOS 上编译。将设置内容保留在专用的根视图SettingsView中并用AppStorage驱动数值。有多个类别时用TabView分组设置分区。在每个标签页内使用Form保持控件对齐且可访问。使用OpenSettingsAction或SettingsLink作为应用内打开设置窗口的入口。示例设置场景mainstructMyApp:App{varbody:someScene{WindowGroup{ContentView()}#ifos(macOS)Settings{SettingsView()}#endif}}示例带标签页的设置视图MainActorstructSettingsView:View{AppStorage(showPreviews)privatevarshowPreviewstrueAppStorage(fontSize)privatevarfontSize12.0varbody:someView{TabView{Form{Toggle(Show Previews,isOn:$showPreviews)Slider(value:$fontSize,in:9...96){Text(Font Size (\(fontSize,specifier:%.0f)pts))}}.tabItem{Label(General,systemImage:gear)}Form{Toggle(Enable Advanced Mode,isOn:.constant(false))}.tabItem{Label(Advanced,systemImage:star)}}.scenePadding().frame(maxWidth:420,minHeight:240)}}避免导航除非确实需要深层推入式导航否则避免将SettingsView包裹在NavigationStack中。优先使用标签页或分区Settings 已经作为独立窗口呈现应保持扁平感。如果必须显示层级式设置使用带侧边栏类别列表的单个NavigationSplitView。陷阱不要复用仅 iOS 的设置布局全屏堆栈、重度工具栏流程。避免在Form内部使用大型自定义视图层级保持行聚焦且可访问。