更新NSPopover OSX Objective-C中的视图约束

更新NSPopover OSX Objective-C中的视图约束,objective-c,xcode,autolayout,constraints,Objective C,Xcode,Autolayout,Constraints,我使用的是Xcode 8.2,Objective C,Mac OSX,而不是iOS 我在popover中显示了如下视图: 一旦我在第二个NSPopupButton中选择了一个选项,蓝色文本就会被另一个较长的文本(5行而不是3行)所取代-不幸的是,视图不会增长以反映更改 仅当我关闭NSpover并重新打开它时,视图才是正确的: 视图完全使用自动布局和约束构建。没有限制任何子视图的高度或宽度的约束,只是将距离设置为superview。所以我的问题是,在NSPoupButton中进行选择后,如何更

我使用的是Xcode 8.2,Objective C,Mac OSX,而不是iOS

我在popover中显示了如下视图:

一旦我在第二个NSPopupButton中选择了一个选项,蓝色文本就会被另一个较长的文本(5行而不是3行)所取代-不幸的是,视图不会增长以反映更改

仅当我关闭NSpover并重新打开它时,视图才是正确的:

视图完全使用自动布局和约束构建。没有限制任何子视图的高度或宽度的约束,只是将距离设置为superview。所以我的问题是,在NSPoupButton中进行选择后,如何更新视图。我已经尝试过(在viewController中)

但它似乎不起作用。我查看了这些帖子,但它们对我的问题没有帮助:

编辑:

新文本(在NSPoupButton选择中)设置如下:


[self.descriptionText字段setString值:self.currentSequenceItem.descriptionText]

我找到了解决方案,我想与大家分享。 设置完所有约束后,确保调用

[yourTextField setPreferredMaxLayoutWidth:100.0f]; // Whatever you need
否则,文本字段将倾向于水平缩放,使所有文本成为一行


如果设置了该属性,它将垂直缩放,并将根据需要更新所有约束。

我找到了解决方案,希望与大家分享。 设置完所有约束后,确保调用

[yourTextField setPreferredMaxLayoutWidth:100.0f]; // Whatever you need
否则,文本字段将倾向于水平缩放,使所有文本成为一行

如果设置了该属性,它将垂直缩放,并根据需要更新所有约束