NSStackView
相比, NSView
还有2个优先级,即clippingResistancePriority
和huggingPriority.
文档提供了一些合理的解释,说明了它们的用途以及它们的作用
但是4个优先事项有点矫枉过正。
现在,他们在上述文件中提到:
堆栈视图没有固有内容大小,并且没有可配置的内容压缩阻力。在堆栈视图上调用
setContentCompressionResistancePriority:forOrientation:
方法无效。
然而,contentHuggingPriority
留在阴影中。
似乎NSStackView
也没有对这个做出反应 - 或者至少我无法做到这一点。
有人可以确认或否定这一点吗?
答案 0 :(得分:2)
是的,这是正确的。来自NSView的继承内容约束优先级:
- (NSLayoutPriority)contentHuggingPriorityForOrientation:(NSLayoutConstraintOrientation)orientation NS_AVAILABLE_MAC(10_7);
- (NSLayoutPriority)contentCompressionResistancePriorityForOrientation:(NSLayoutConstraintOrientation)orientation NS_AVAILABLE_MAC(10_7);
仅适用于基于视图intrinsicContentSize
创建的约束,NSStackView没有。所以像你和文档提到的那样,它们没有任何效果。
(除非您继承NSStackView并覆盖intrinsicContentSize
以赋予它一些值...)