1

我有一个 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 覆盖它的最佳方法是什么?

4

0 回答 0