我在 ScrolledComposite(sc) 中有一个复合材料(innerComposite)。在运行时,可以添加额外的 UI 组件。因此,我使用下面的代码来设置 sc 的最小大小以启用滚动,以防其他 UI 组件“溢出”sc。
sc.setMinSize(
innerComposite.computeSize(
innerComposite.getSize().x, SWT.DEFAULT
)
);
一个问题是这个 sc/innerComposite 中的 SWT 多行文本字段。
textBox = new org.eclipse.swt.widgets.Text(parent, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL);
当我在这个多行文本字段中输入长文本时,会出现垂直滚动条(这就是我想要的!)。但是,当我调用上面的代码重新计算大小并设置 sc.setMinSize() 时...多行文本字段的高度将扩展以适应输入文本的长度。这不是我想要的。我希望这个高度保持在滚动条上,而不是调整大小以适应输入的文本。
我知道computeSize
会将其子项转换为首选大小。我不希望这种情况发生在多行文本字段上,因为它具有滚动垂直条的能力。
我怎样才能防止这种情况发生?