我有一个 swt StyledText 的问题,其中部分文本必须着色。
在 MAC OSX 上使用以下代码(在 Windows 上工作正常)时,当我输入多个连续的“f”字符时会出现问题。当“f”后跟“i”或“l”时,也会出现问题。除此之外,没有任何问题。
editboxFreeSpt2 = new StyledText(grpSoundsLike, SWT.BORDER | SWT.SINGLE);
editboxFreeSpt2.addModifyListener(new ModifyListener()
{
public void modifyText(ModifyEvent e)
{
editboxFreeSpt2.setStyleRanges(new StyleRange[0]);
StyleRange newStyleRange = new StyleRange();
newStyleRange.start = editboxFreeSpt2.getText().length() - 1;
newStyleRange.length = 1;
newStyleRange.foreground = red;
editboxFreeSpt2.setStyleRange(newStyleRange);
}
});
editboxFreeSpt2.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
所以问题是,当 StyleRange 设置正确时,最后一个 f/i/l 字符并不总是像它应该的那样着色。我正在使用 osx 10.7.5 和 eclipse helios org.eclipse.swt.cocoa.macosx.x86_64_3.6.2.v3659b.jar
所以我认为这可能是 SWT 或 OSX 的本机组件中的错误。修复此错误或使用 hack 覆盖它的最佳方法是什么?