[英]How to hidden the sub NSView according to the window size in Mac OS?
我正在快速編寫 MacOS 應用程序。 窗口中的主要布局如下:
NSStackView 有一個 sideBar (NSTableView) 和一個 NSView。 我想要實現的目標列在這里:
WIDTH_THRESHOLD
,sideBar 被隱藏。問題是
NSWindowController
和一個NSViewController
。 我可以在NSWindowController
監聽窗口大小,但我不知道如何將此消息傳輸到NSViewController
以隱藏側欄。 請注意,NSStackView 在大小檢查器中具有Hugging Priority
、 Clipping Resistance Priority
和Visibility Priorities
等屬性,我是否可以通過設置這些屬性來實現目標(如下圖)?
您是否限制了側邊欄的寬度? 如果您還沒有,那么可能發生的情況是NSView
正在自動調整大小並推動側邊欄。 更改紅色箭頭不會創建實際約束,只會更改調整大小規則。
就像您說的那樣,在NSWindowController
收聽窗口大小。 只要您在該窗口類中有對側邊欄的引用(例如,您可以訪問包含它的視圖控制器),您就可以在窗口太小時設置sideBar.isHidden = true
當窗口太小時設置為false
又夠大了。
最后,我使用 NSSplitView 作為 sideBar,它更容易。
我使用NSSplitViewDelegate
來監聽 SplitView 的寬度變化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.