2012-08-15 2 views
2

현재 내 앱의 동작으로이 추가 기능을 호출 할 수있게되었습니다.이 기능을 사용하면 맞춤식으로 크기를 조정할 수 있습니다.자동 레이아웃을 기반으로 NSWindow를 자동으로 조정하는 방법 contentView의 최소 크기

- (void)fitToMinimumSize 
{ 
    NSRect frame = [self frame]; 
    frame.size = [[self contentView] fittingSize]; 
    int originalHeight = [self frame].size.height; 
    int diff = originalHeight - frame.size.height; 
    frame.origin.y += diff; 
    [self setFrame:frame display:YES]; 
} 

그러나이있는 contentView이 전능하신 해킹 대신 년대의 창은 항상 최소의 크기가되도록 나는 자동 레이아웃 코드에 내장 된 몇 가지를 통해이 문제를 자동화 할 수 있습니다?

편집 : [[self contentView] fittingSize]를 확인할 수 있음을 알았지 만 변경 사항을 어떻게 관찰 할 수 있습니까? 아니면 내가 직접 트리거해야합니까?

+0

[Autolayout] (http://developer.apple.com/library/mac/#releasenotes/UserExperience/RNAutomaticLayout/_index.html#//apple_ref/doc/uid/TP40010631) 제약 조건은 자동 크기 조정 마스크 사용과 동일합니다. – JJD

답변

1

일반적으로 레이아웃이 완전히 명확하고 창 콘텐츠보기 및 해당 하위 집합에 NSConstraint이 설정되어 있으면 모든 것이 자동으로 설정되어 있어야합니다.

귀하의 경우에는 충분히 작은 치수 (어쩌면 제로)가 있지만 하위 뷰에 설정된 '내용 압축 저항 우선 순위'보다 낮은 우선 순위로 내용보기에 너비 및 너비 제한을 설치하려고합니다. 모든 것이 제대로 작동하려면 제한 우선 순위를 가지고 놀거나 콘텐츠 뷰의 하위에 추가 제약 조건을 설치해야 할 수 있습니다.

하위보기가 0으로 축소되지 않도록 제한되어 있으면 다른 코드 없이도 작동합니다. 이 경우 윈도우 크기를 사용자가 조절해서는 안된다고 생각합니다.

관련 문제