2014-09-30 3 views
0

클릭했을 때 NSButton의 크기가 변경되었습니다. 그러나 창 크기를 조정하면 크기가 기본값으로 복원됩니다. 자동 레이아웃 옵션 때문이라는 것을 깨달았습니다.xcode에서 자동 레이아웃을 활성화하여 NSButton의 너비를 영구적으로 변경할 수 없습니까?

그래서 자동 레이아웃 옵션을 사용하여 컨트롤의 위치 나 크기를 영구적으로 변경할 수 없습니까?

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

가 NIB로 이동

답변

0

는 출구를 선언합니다. 버튼을 선택하고 너비를 고정하십시오 (편집기 - 핀 - 너비). 그러면 버튼 제약 조건에 너비 제약 조건이 추가됩니다. 새로 생성 된 구속 조건을 위의 콘센트에 연결하십시오.

그리고 버튼 클릭 이벤트에

:

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

UPD : [보기 setFrame :]이 적용되지 않는이 뒤에 아이디어는 자동 레이아웃 엔진이보기 프레임이 필요할 때마다, 같은 수동으로 변경 덮어 쓰기 때문이다. 레이아웃의 일부 속성을 변경하는 유일한 방법은 대신 레이아웃 수준에서 작업하는 것입니다. 귀하의 경우에는

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

,이 제약은 70 엑스 코드에 의해 제안 원래의 폭이 MyButton.width = 1 * (none) + 70만큼 간단하다 : 레이아웃 제약 조건은 수식과 같다.

관련 문제