如何在Mac OS中根据窗口大小隐藏子NSView?

问题描述 投票:-1回答:2

我正在快速编写MacOS应用程序的代码。窗口中的主要布局如下:

The layout of the app

NSStackView具有sideBar(NSTableView)和NSView。我要实现的目标在这里列出:

  1. 更改窗口大小时,sideBar的宽度是固定的。
  2. [当窗口的宽度小于WIDTH_THRESHOLD时,sideBar被隐藏。

问题

  1. 对于目标1,sideBar和NSView的约束如下,但是它不起作用,并且sideBar的宽度仍在变化。

The constraints

  1. 对于目标2,项目具有NSWindowControllerNSViewController。我可以在NSWindowController中收听窗口大小,但是我不知道如何将此味精传输到NSViewController以隐藏sideBar。

注意,NSStackView在大小检查器中具有Hugging PriorityClipping Resistance PriorityVisibility Priorities之类的属性,是否可以通过设置这些属性来实现目标(下图)?

The properties

swift macos cocoa nsviewcontroller nsstackview
2个回答
0
投票
    最后,我将NSSplitView用作sideBar,它要容易得多。
  1. 我用NSSplitViewDelegate监听SplitView的宽度变化。

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