簡體   English   中英

SwiftUI TabView 不呈現預覽標簽

[英]SwiftUI TabView not rendering Preview Labels

我正在為 macOS 開發一個 SwiftUI 應用程序。

但是,在預覽 Canvas 以及在新的 Window 上使用視圖時,我無法使TabView正確呈現。

struct DevView: View {
    
    @State var isOn = true
    
    var body: some View {
        TabView {
            Toggle(isOn: $isOn) {
                Text("Foo")
            }
            .toggleStyle(SwitchToggleStyle(tint: .green))
            .tabItem {
                Label("Foo", systemImage: "dot.square")
            }
            
            Text("Bar")
            .tabItem {
                Label("Bar", systemImage: "gear")
            }
            
        }.frame(width: 200, height:75)
    }
}

struct DevView_Previews: PreviewProvider {
    static var previews: some View {
        DevView()
    }
}

為什么此代碼在預覽版 Canvas 中呈現如下:

在此處輸入圖像描述

而不是正確顯示帶有標簽的選項卡:

在此處輸入圖像描述

備案:XCode 13.2.1,BigSur 11.6.2

在 MacOS 上 SwiftUI 不會在標簽標簽中呈現圖像: https://developer.apple.com/design/human-interface-guidelines/macos/windows-and-views/tab-views/

您必須 go 才能獲得帶有按鈕的自定義解決方案。 這似乎很棘手。 我獲得一半的唯一方法是以下。

在此處輸入圖像描述

這基本上是一個可定制的工具欄。 要在標題欄中沒有它,您必須使用.windowToolbarStyle(.expanded)。 不幸的是,.windowToolbarStyle(.expanded) 必須直接在 WindowGroup 上:

@main
struct test_stack_macOsApp: App {
    var body: some Scene {
        WindowGroup {
            DevView()
                .toolbar(id: "myToolbar") {
                    ToolbarItem(id: "1", placement: .principal) {
                        Button {
                            // pass id to view
                        } label: {
                            Label("Foo", systemImage: "dot.square")
                        }
                    }
                    ToolbarItem(id: "2") {
                        Button {
                            // pass id to view
                        } label: {
                            Label("Bar", systemImage: "gear")
                        }
                    }
                }
                .navigationTitle("Foo")
        }
        .windowToolbarStyle(.expanded)
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM