NSStackView和内容拥抱优先级

时间:2016-09-02 19:32:31

标签: objective-c swift macos cocoa nsstackview

与常规NSStackView相比,

NSView还有2个优先级,即clippingResistancePriorityhuggingPriority.文档提供了一些合理的解释,说明了它们的用途以及它们的作用

但是4个优先事项有点矫枉过正。

现在,他们在上述文件中提到:

  

堆栈视图没有固有内容大小,并且没有可配置的内容压缩阻力。在堆栈视图上调用setContentCompressionResistancePriority:forOrientation:方法无效。

然而,contentHuggingPriority留在阴影中。 似乎NSStackView也没有对这个做出反应 - 或者至少我无法做到这一点。

有人可以确认或否定这一点吗?

1 个答案:

答案 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以赋予它一些值...)