2017-05-05 63 views
1

我在Xcode 8.2,Objective C,Mac OSX上,而不是iOS上。在NSPopover OSX中更新视图约束Objective-C

我有在这样的酥料饼中所示的视图:enter image description here

一旦我选择在第二NSPopupButton一个选项,该蓝色文本获取与另一较长的文本替换(5行而不是3) - 不幸的是,图不会增长以反映变化!

enter image description here

只有当我关闭NSPopover并重新打开它的观点是正确的:

enter image description here

的观点是完全自动布局和约束修建。任何子视图都没有限制高度或宽度的限制,只需设置距离到超视图。所以我的问题是,如何在NSPopupButton中选择后更新视图。我已经尝试过(在viewController中)

[self.view setNeedsLayout:YES]; 

但它似乎不工作。我检查了这些职位,但他们并没有帮助我与我的问题:

Resize current view using NSLayoutConstraints

编辑:

新的文本(上NSPopupButton选择)设定这样的:

[self.descriptionTextField setStringValue:self.currentSequenceItem.descriptionText];

回答

0

我找到了解决方案,我想分享它。 一旦你设置你所有的约束条件请确保调用

[yourTextField setPreferredMaxLayoutWidth:100.0f]; // Whatever you need 

否则,文本框将趋向于横向扩展让你所有的文字一行。

如果该属性已设置,它将垂直缩放,并将更新所有约束条件。