我刚刚开始尝试NSStackView
,我遇到了一个非常有趣的问题,我无法解决。我已经搜索了 Apple 网站上的自动布局指南以及NSStackView
文档,但似乎找不到任何东西。
我的问题是我有两个从 nib 文件加载的相同NSScrollView
对象(每个都带有嵌入的)。NSTextView
当我将这些视图添加到我的堆栈视图时,第一个添加的视图会占用 100% 的可用空间,第二个会完全折叠到底部,高度为 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
,所以任何帮助将不胜感激。