2014-09-30 4 views
0

Я изменил размер NSButton, когда я нажал на него. Но при изменении размера окна размер будет восстановлен по умолчанию. Я понял, что это из-за опции Auto Layout.Невозможно изменить ширину NSButton с автоматическим расположением в xcode?

Итак, вопрос в том, не могу ли я изменить положение или размер элемента управления постоянно с включенным параметром автоматической компоновки?

ответ

0

Объявите выход:

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

Перейти к СИБ. Выберите свою кнопку и нажмите ее ширину (Editor - Pin - Width). Это добавит ограничение ширины в ограничения кнопок. Подключите вновь созданное ограничение к выходу выше.

И щелчка кнопки события:

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

UPD: Идея заключается в том, что автоматическая компоновка двигателя перезаписывает просмотр кадров каждый раз, когда это необходимо, поэтому изменения вручную, как [вид setFrame:] не применяются. Таким образом, единственный способ изменить некоторые свойства макета - это работать на уровне макета. Компоновка ограничение только формула, как:

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

В вашем случае, это ограничение так же просто, как MyButton.width = 1 * (none) + 70, где 70 является оригинальной шириной предложенной Xcode.