当堆栈视图调整大小时,如何让 NSButton 与 NSStackView 分离?
Posted
技术标签:
【中文标题】当堆栈视图调整大小时,如何让 NSButton 与 NSStackView 分离?【英文标题】:How can you get an NSButton to detach from an NSStackView when the stack view resizes? 【发布时间】:2014-01-13 17:40:43 【问题描述】:当堆栈视图调整大小时,如何让 NSButton
与 NSStackView
分离?
使用NSCell
绘图的NSControl
子类似乎与其他NSView
子类在自动布局中具有抗压缩性的可见性上有不同的想法。
NSStackView
在这里似乎也没有什么不同。
如果我将控件的可见性优先级设置为高于 1,则它不会下降。 如果我把它设置为0,那么它当然只会下降,永远不会出现。
这应该如何工作?
当堆栈视图的大小调整为较小时,如何使按钮或其他控件放下?
也许是因为缺少 NSStackView
的文档和示例...
【问题讨论】:
+1 表示大胆并与新的NSStackView
thingie 搏斗 - 以及第一个 SO 堆栈视图问题 :-)
哈哈哈。好的。谢谢。
【参考方案1】:
在看到任何视图分离之前,我必须做两件事:
致电-[NSStackView setClippingResistancePriority:forOrientation:]
。如果堆栈视图的大小与窗口的大小相关联,则优先级需要小于NSLayoutPriorityWindowSizeStayPut
(500),否则堆栈视图不允许窗口小于其内容。
每次我向堆栈视图添加一个我想分离的视图时,为该视图调用-[NSStackView setVisibilityPriority:forView:]
。
【讨论】:
迟到总比不到好。当时没有人参与其中。现在您可以在 IB 中进行设置。 :)【参考方案2】:尝试将优先级设置为NSStackViewVisibilityPriorityDetachOnlyIfNecessary
?
【讨论】:
不。当它被限制在拆分视图子视图的两侧并且您拖动分隔线时,它就像按钮一样坐在那里。我猜接下来有一些限制优先级的技巧。以上是关于当堆栈视图调整大小时,如何让 NSButton 与 NSStackView 分离?的主要内容,如果未能解决你的问题,请参考以下文章