【问题标题】:Update view constraints in NSPopover OSX Objective-C在 NSPopover OSX Objective-C 中更新视图约束
【发布时间】:2017-05-05 11:43:14
【问题描述】:

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

我有一个像这样的弹出窗口中显示的视图:

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

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

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

[self.view setNeedsLayout:YES];

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

Resize current view using NSLayoutConstraints

编辑:

新文本(在 NSPopupButton 选择上)设置如下:

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

【问题讨论】:

    标签: objective-c xcode autolayout constraints


    【解决方案1】:

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

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

    否则,文本字段将倾向于水平缩放,使您的所有文本成为一个衬里。

    如果设置了该属性,它将垂直缩放并按预期更新所有约束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多