の実験を始めたばかりでNSStackView
、解決できない非常に興味深い問題があります。Apple の Web サイトの自動レイアウト ガイドとドキュメントを精査しましたが、NSStackView
何も見つからないようです。
私の問題は、nib ファイルからロードされる2 つの同一NSScrollView
のオブジェクト (それぞれに が埋め込まれている) があることです。NSTextView
これらのビューをスタック ビューに追加すると、最初に追加されたビューが使用可能なスペースの 100% を占有し、2 番目のビューは使用可能な水平スペースをすべて占有しながら、高さ 2 ピクセルで下部まで完全に折りたたまれます。実際、これは最初のビューだけがウィンドウ内にあるように見えます。現在の外観は次のとおりです。
この例では、背景色のためにほとんど見ることができませんが、スクロール ビューはウィンドウの下部から数ピクセル上で終了します。これは、ビュー階層インスペクターからのより良いビューです。ここでは、この 2 ピクセルの高さのビューを選択しています (拡大するにはここをクリックしてください)。
関連するセットアップコードは次のとおりです。
// 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
ので、助けていただければ幸いです。