0

我使用ContentProposalAdapter为我的 StyledText 字段提供内容帮助。我编写了一个实现IControlContentAdapter,IControlContentAdapter2以支持 StyledText 的适配器。我的问题是,当我按回车键插入提案时,回车键被插入到 StyledText 中,然后提案被插入。

为什么没有遍历UPDOWN箭头,但是返回键是。

当用于选择提案时,如何防止返回键开始插入到 StyledText 字段中。

4

2 回答 2

1

也许这个问题很老,但是当我用谷歌搜索时,这篇文章几乎涵盖了我的问题,但没有解决方案,我想提供我现在找到的解决方案。

我的问题完全相同,但在所选提案之后插入了换行符。通过双击选择提案工作得很好,所以我同意你的观点,它可能是 StyledTextWidget 收到有关 Enter 的通知...首先我在我的 ContentProposalAdapter 上尝试了 setPropagateKeys(false),因为文档说它“指示是否键当提议弹出窗口打开时,内容提议弹出窗口接收到的事件(包括自动激活字符)也应传播到适配控件”。但这也不起作用。

实际上对我有用的是:我在 StyledTextWidget 中添加了一个 VerifyKeyListener,并在 ProposalPopup 打开时过滤了 Enter 事件。我认为这可能不起作用,因为在提案之后插入了换行符,但在我的程序上它工作正常,所以似乎在将 Enter 键传递给 StyledTextWidget 之后完成了提案弹出窗口的关闭。

继承人的代码:

styledText.addVerifyKeyListener(new VerifyKeyListener() {

@Override
public void verifyKey(VerifyEvent arg0) {
        try {
            KeyStroke k = KeyStroke.getInstance("Enter");
            if(k.getNaturalKey() == arg0.keyCode &&  contentProposalAdapter.isProposalPopupOpen()) {
                arg0.doit = false;
            }
        } catch (ParseException e) {
                e.printStackTrace();
        }
    } });
于 2013-11-29T11:34:44.910 回答
0

我不知道你是如何在你的代码中实现IControlContentAdapter的。IControlContentAdapter2你试过这个吗?我在我的自定义StyledText实现中使用它。但它们都是SWT.SINGLE文本字段。我希望它可以帮助你。

于 2013-06-25T21:35:05.307 回答