방금 NSStackView
으로 실험하기 시작했습니다. 해결할 수없는 매우 흥미로운 문제가 있습니다. 나는 NSStackView
문서뿐만 아니라 애플의 웹 사이트에서 자동 레이아웃 가이드를 샅샅이 뒤졌고 아무 것도 발견하지 못했다.NSStackView가 뷰를 올바르게 레이아웃하지 않았습니다.
내 문제는 nib 파일에서로드 된 두 개의 동일한 NSScrollView
개체 (각각 NSTextView
포함)가 있다는 것입니다. 이러한 뷰를 스택보기에 추가하면 처음에 추가 된 뷰가 사용 가능한 공간의 100 %를 차지하고 두 번째 뷰는 사용 가능한 모든 수평 공간을 차지하면서 2 픽셀의 높이로 완전히 아래로 접습니다. 결과적으로 첫 번째보기가 창에있는 유일한보기처럼 보입니다. 여기처럼 현재 모습 : 그것은 때문에 배경 색상의 예에서 볼 수 거의 불가능
하지만, 스크롤 뷰 창 하단 위에 몇 픽셀을 종료합니다.
여기에 관련 설정 코드입니다 : 여기에 내가 선택한이 2 픽셀 높은보기가 뷰 계층 관리자에서 더 잘 볼 (click here to view larger)의 내가 이해에서
// Load the stack view
self.inputViewController = [[NSViewController alloc] initWithNibName:@"Document_TextInputView" bundle:nil];
self.textView = (NSTextView *)[[(NSScrollView *)self.inputViewController.view contentView] documentView];
self.outputViewController = [[NSViewController alloc] initWithNibName:@"Document_TextOutputView" bundle:nil];
self.outputView = (NSTextView *)[[(NSScrollView *)self.outputViewController.view contentView] documentView];
// Add all views into the stack view
[self.stackView addView:self.inputViewController.view inGravity:NSStackViewGravityTop];
[self.stackView addView:self.outputViewController.view inGravity:NSStackViewGravityBottom];
self.stackView.orientation = NSUserInterfaceLayoutOrientationVertical;
// Load the text into the window.
[self.textView setString:self.cachedText];
[self.outputView setString:@"=== PROGRAM OUTPUT ===\n"];
[self.codeActionSegmentedControl setEnabled:NO forSegment:1];
는, 본질적인 콘텐츠 크기 은으로 축소가 줄어들지 않아야합니다. 나는 NSStackView
에 너무 익숙하지 않아 어떤 도움을 주시면 감사하겠습니다.
두 서브 뷰 모두에 대해 'NSStackViewGravityTop'을 사용하려고 했습니까? – Astoria
@Astoria 예, 그리고 그것은 내가 게시 한 것과 다른 시각적으로 다른 것을하지 않습니다. – SevenBits