NSStackView 和内容拥抱优先级
NSStackView and content hugging priority
NSStackView
与常规 NSView
相比有 2 个额外的优先级,即 clippingResistancePriority
和 huggingPriority.
该文档提供了一些合理的解释它们的用途和用途他们有。
但是4个优先级有点矫枉过正。
现在,他们在上述文档中提到:
A stack view has no intrinsic content size and does not have a configurable content compression resistance. Calling the setContentCompressionResistancePriority:forOrientation:
method on a stack view has no effect.
然而,contentHuggingPriority
被遗忘在阴影中。
似乎 NSStackView
对这个也没有反应——或者至少我没能做到。
有人可以证实或反驳吗?
是的,这是正确的。从 NSView 继承的内容约束优先级:
- (NSLayoutPriority)contentHuggingPriorityForOrientation:(NSLayoutConstraintOrientation)orientation NS_AVAILABLE_MAC(10_7);
- (NSLayoutPriority)contentCompressionResistancePriorityForOrientation:(NSLayoutConstraintOrientation)orientation NS_AVAILABLE_MAC(10_7);
仅适用于基于视图的 intrinsicContentSize
创建的约束,NSStackView 没有。所以就像你和文档提到的那样,它们没有效果。
(除非您将 NSStackView 子类化并覆盖 intrinsicContentSize
以赋予它一些价值...)
NSStackView
与常规 NSView
相比有 2 个额外的优先级,即 clippingResistancePriority
和 huggingPriority.
该文档提供了一些合理的解释它们的用途和用途他们有。
但是4个优先级有点矫枉过正。
现在,他们在上述文档中提到:
A stack view has no intrinsic content size and does not have a configurable content compression resistance. Calling the
setContentCompressionResistancePriority:forOrientation:
method on a stack view has no effect.
然而,contentHuggingPriority
被遗忘在阴影中。
似乎 NSStackView
对这个也没有反应——或者至少我没能做到。
有人可以证实或反驳吗?
是的,这是正确的。从 NSView 继承的内容约束优先级:
- (NSLayoutPriority)contentHuggingPriorityForOrientation:(NSLayoutConstraintOrientation)orientation NS_AVAILABLE_MAC(10_7);
- (NSLayoutPriority)contentCompressionResistancePriorityForOrientation:(NSLayoutConstraintOrientation)orientation NS_AVAILABLE_MAC(10_7);
仅适用于基于视图的 intrinsicContentSize
创建的约束,NSStackView 没有。所以就像你和文档提到的那样,它们没有效果。
(除非您将 NSStackView 子类化并覆盖 intrinsicContentSize
以赋予它一些价值...)