macOS上的自动布局:窗口大小低于阈值时隐藏控件
我有一个用于音乐播放器的macOS应用程序窗口,其中有几个控件和一个播放列表-NSTableView。当窗口大小调整到某个阈值以下时,我想自动隐藏播放列表macOS上的自动布局:窗口大小低于阈值时隐藏控件,macos,cocoa,autolayout,interface-builder,Macos,Cocoa,Autolayout,Interface Builder,我有一个用于音乐播放器的macOS应用程序窗口,其中有几个控件和一个播放列表-NSTableView。当窗口大小调整到某个阈值以下时,我想自动隐藏播放列表 我可以单独使用autolayout(类似于iOS上的“安装”选项/大小类)来实现这一点,还是必须编写代码来侦听窗口大小调整事件、评估大小并手动隐藏播放列表?您不能单独使用autolayout 如果使用NSSplitViewController,并将包含表视图的NSSplitViewItem的行为设置为NSSplitViewItemBehavi
我可以单独使用autolayout(类似于iOS上的“安装”选项/大小类)来实现这一点,还是必须编写代码来侦听窗口大小调整事件、评估大小并手动隐藏播放列表?您不能单独使用autolayout 如果使用
NSSplitViewController
,并将包含表视图的NSSplitViewItem
的行为设置为NSSplitViewItemBehaviorSidebar
(Swift:NSSplitViewItem.behavior.sidebar
),并且您将拆分视图控制器的minimumThicknessForInlineSidebars
设置为表视图的最小所需宽度,那么当窗口变得太窄时,拆分视图控制器将负责隐藏侧栏
请看一个例子。这是GalleryWindowController.swift中的关键部分:
splitViewController.minimumThicknessForInlineSidebars = 992.0
splitViewController.view.wantsLayer = true
// Create a sidebar SplitViewItem. This has metrics and behaves like system standard sidebars.
let sidebarSplitViewItem = NSSplitViewItem(sidebarWithViewController: self.sidebarController)
splitViewController.addSplitViewItem(sidebarSplitViewItem)