【发布时间】:2020-04-22 16:08:40
【问题描述】:
我正在用 swift 编写一个 MacOS 应用程序。窗口中的主要布局如下:
NSStackView 有一个侧边栏(NSTableView)和一个 NSView。这里列出了我想要实现的目标:
- 改变窗口大小时,侧边栏的宽度是固定的。
- 当窗口宽度小于
WIDTH_THRESHOLD时,隐藏侧边栏。
问题是
- 对于 Target 1,sideBar 和 NSView 的约束如下,但不起作用,sideBar 的宽度仍然变化。
- 对于目标 2,该项目有一个
NSWindowController和一个NSViewController。我可以在NSWindowController中收听窗口大小,但我不知道如何将此消息传输到NSViewController以隐藏侧边栏。
注意NSStackView在size inspector中有Hugging Priority、Clipping Resistance Priority和Visibility Priorities等属性,我可以通过设置这些属性来达到目标吗(如下图)?
【问题讨论】:
-
我认为 NSSplitView 或 NSSplitViewController 比 NSStackView 更适合侧边栏应用程序。
标签: swift macos cocoa nsviewcontroller nsstackview