菜单栏应用程序的选项卡视图无法正确呈现

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

我正在构建一个 Mac OSX 菜单栏应用程序(构建目标是 14.0),并且需要一个“设置”窗口作为其中的一部分。当我在此窗口中使用 Tabview 时,我遇到了渲染问题,即使相同的语法在常规应用程序中工作正常

我将窗口定义为 @main 块中的独立视图,如下所示:

struct xyzApp: App {
   MenuBarExtra {
          MenubarView()
        } label: {
          Label("XYZ", image: "xyz")
        }
        .menuBarExtraStyle(.window)
     
        Window("Settings", id: "settings-window") {
            SettingsView()
        }.windowResizability(.contentSize)
}

“设置”视图如下所示

var body: some View {
        TabView {
            Form {
                
            }.tabItem { Label("Tab1",systemImage: "gear") }
            Form {
                
            }.tabItem { Label("Tab2",systemImage: "gear") }
        }
        
    }
}

但是 Tabview 未正确渲染,没有图像且尺寸错误 bad tabs

我在常规应用程序上使用 @main 块中的 Settings() 声明测试了相同的代码,并且工作正常。关于我做错了什么的任何观点都会非常有帮助。

swift macos swiftui
1个回答
0
投票

好的,明白了。原来macos只支持设置窗口上的TabView!我通过使用 SettingsLink 在我的 @main 块中定义它后打开“设置”窗口来解决这个问题

Settings { SettingsView() }

这是一个非常令人恼火的限制,希望它在未来的版本中得到修复。

SettingsLink 上有一个很好的讨论这里

© www.soinside.com 2019 - 2024. All rights reserved.