【问题标题】:Collapse SwiftUI right sidebar with toolbar button使用工具栏按钮折叠 SwiftUI 右侧边栏
【发布时间】:2020-11-11 09:55:42
【问题描述】:

我的 macOS 应用有一个带有 3 列的 NavigationView,其中最左侧和最右侧的列充当可以折叠的侧边栏。我设法通过放置带有NSApp.keyWindow?.firstResponder?.tryToPerform(#selector(NSSplitViewController.toggleSidebar(_:)), with: nil) 的工具栏按钮来折叠左侧边栏,但据我所知,它仅适用于拆分视图的第一列。

如何将此行为复制到我的右侧边栏?

我的看法:

NavigationView {
    switch loginInfo.loginStatus {
        LoginView()
    }
            
    #if os(macOS)
    if loginInfo.loginStatus != .notLoggedIn {
        VStack {
            CurrentlyTrackingView(loginInfo: loginInfo, user: user, presentsEditScreen: $showingEntryEditScreen).fixedSize()
            TimeEntriesView()
        }
                
        VStack {
            CurrentEntryView(loginInfo: loginInfo, user: user, entry: entrySidebar.entry, withName: entrySidebar.startName, bulkEdit: entrySidebar.bulkEdit, withStartDate: entrySidebar.startDate, withEndDate: entrySidebar.endDate)
            Spacer()
        }
    }
    #endif
}
.toolbar {
    ToolbarItem(placement: .navigation) {
        #if os(macOS)
        Button(action: toggleLeftSidebar, label: {
            Image(systemName: "sidebar.left")
        })
        #endif
    }
}

func toggleLeftSidebar() {
    #if os(macOS)
    NSApp.keyWindow?.firstResponder?.tryToPerform(#selector(NSSplitViewController.toggleSidebar(_:)), with: nil)
    #endif
}

【问题讨论】:

    标签: swift macos swiftui sidebar


    【解决方案1】:

    Apple Forums所示,尚无法使用 SwiftUI 实现

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-29
      相关资源
      最近更新 更多