在xcode中启用自动布局时,无法永久更改NSButton的宽度?

时间:2014-09-30 03:48:19

标签: xcode cocoa

当我点击它时,我改变了NSButton的大小。但是当我调整窗口大小时,它的大小会恢复为默认值。我意识到这是因为自动布局选项。

所以,问题是,如果启用了自动布局选项,我是否无法永久更改控件的位置或大小?

1 个答案:

答案 0 :(得分:0)

宣布出口:

@property(nonatomic,weak) IBOutlet NSLayoutConstraint *buttonWidthConstraint;

转到NIB。选择您的按钮并固定它的宽度(编辑器 - 引脚 - 宽度)。这会将宽度约束添加到按钮约束中。将新创建的约束连接到上面的插座。

按钮点击事件:

- (IBAction)buttonDidClick:(id)sender
{
    [self.buttonWidthConstraint setConstant:300]; // set new width
}

upd:这背后的想法是自动布局引擎每次需要时都会覆盖视图帧,因此[view setFrame:]等手动更改不适用。因此,更改布局的某些属性的唯一方法是在布局级别上工作。布局约束只是一个公式:

item1.attr1 {== | <= | >=} multiplier * {item2.attr2 | none} + constant

在您的情况下,此约束与MyButton.width = 1 * (none) + 70一样简单,其中70是Xcode建议的原始宽度。