Autolayout을 사용하여 서브 뷰를 올바르게 크기를 조정하는 데 문제가 있습니다. 저의 요점을 설명하기 위해, 저는 최소한의 모범을 보였습니다.Cocoa Autolayout 및 Subview의 크기 조정
먼저 새 NSViewController를 만들고이 뷰에 하위 뷰 (NSTextView)를 추가하고 Autolayout 제약 조건을 추가했습니다.
마지막으로, 나는 내보기 컨트롤러의 인스턴스를 생성하고 내 사용자 정의보기 내부의보기를 넣습니다. "Autoresizes 서브 뷰"이후
#import "AppDelegate.h"
#import "MyViewController.h"
@interface AppDelegate()
@property (weak) IBOutlet NSView *customView;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self.customView addSubview:myViewController.view];
myViewController.view.frame = self.customView.bounds;
}
@end
이 모두 XIB 파일에 체크, 나는 메인 창 크기를 조정할 때 크기를 조정하려면를 NSTextView을 기대. 그러나, 그것은 단지 제 위치에 있습니다.
내가 무슨 말이냐? 이것은 며칠 동안 나를 당황하게했다.
감사합니다, 마이클 크 누드 센
,를 NSTextView (더 정확하게는 내장되어있는 NSScrollView가) 내보기 컨트롤러의 함께 IBOutlet보기의 하위 뷰 것으로 보인다. 자동 레이아웃 제약 조건은 해당 뷰와 관련이 있습니다. 맞습니까? –
실제로 프로그래밍 방식으로 실험을 해봤지만 어떻게 든 크기를 조정하지 못하게되었습니다. 프로그래밍 방식으로 뷰를 추가 한 후에는 창 모서리 /면을 "잡아 당기는"것이 간단하지 않았습니다. 이제 문서로 돌아가서 한 번 더 시도해 보겠습니다. –
예, 자동 레이아웃 제약 조건은 텍스트보기의보기 * (* 부모보기)를 기준으로합니다. – SevenBits