在我的Catalyst项目中,我只想将SidebarListStyle()应用于Mac。

我的问题是,即使我检查操作系统,也无法构建项目。这里是一个例子:

struct CrossList: View {
    #if targetEnvironment(macCatalyst)
    var body: some View {
        List {
            Text("Mac Test")
        }
        .listStyle(SidebarListStyle())
    }
    #else
    var body: some View {
        List {
            Text("iOS Test")
        }
    }
    #endif
}

这在构建时给我以下错误:

'SidebarListStyle'在iOS中不可用

最佳答案

Mac Catalyst本质上是iOS –仅在Mac上运行。 SidebarListStyle仅在开发完整的macOS(非Catalyst)应用程序时可用,并将包含在编译器指令#if os(macOS)中,如下所示:

struct CrossList: View {
    #if os(macOS)
    var body: some View {
        List {
            Text("Mac Test")
        }
        .listStyle(SidebarListStyle())
    }
    #else
    var body: some View {
        List {
            Text("iOS Test")
        }
    }
    #endif
}

10-08 18:43