【问题标题】:How can I change the size of an NSView when autolayout is active?当自动布局处于活动状态时,如何更改 NSView 的大小?
【发布时间】:2014-01-23 22:07:55
【问题描述】:

我有一个NSViewController,其附加视图在xib 中定义。一切都做得很好(至少我希望如此),所以当我改变视图的高度时,所有的子视图都保持井井有条。

我想以编程方式更改视图的高度。基本上,我的视图的子视图之一是NSTextView,当里面有很多文字时,我想放大视图。

如果我更改视图的frame.size,则不会发生任何事情,因为我认为是自动布局。

在这种情况下,有没有一种标准的方法可以改变视图的高度(或宽度)?


编辑: 我在视图中添加了一个约束:我“固定”了它的height。 然后,我将此约束添加为IBOutlet 属性。 因此,我可以更改约束的.constant 值。

【问题讨论】:

  • 在更改.constant之前尝试将您的视图超级视图的.translatesAutoresizingMaskIntoConstraints设置为NO,然后再更改.constant

标签: cocoa resize nsview autolayout


【解决方案1】:
  1. 为视图创建一个新约束:“固定”它的高度。
  2. 将此约束注册为IBOutlet 属性。
  3. 您可以访问约束和.constant 的值来更改视图的大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    相关资源
    最近更新 更多