我使用ContentProposalAdapter
为我的StyledText字段提供内容帮助。我编写了一个适配器,该适配器实现IControlContentAdapter
,IControlContentAdapter2
以支持StyledText。我的问题是,当我按return键插入提案时,将回车键插入到StyledText中,然后再插入提案。
为什么没有遍历UP
和DOWN
箭头,但是却用了回车键。
当用于选择投标时,如何防止返回键开始插入到StyledText字段中。
最佳答案
也许问题很老了,但是当我搜寻Google时,这篇文章几乎涵盖了我的问题,但是没有解决方案,我想提供我现在发现的解决方案。
我的问题是完全一样的,但是在选择的提案之后插入了换行符。
通过双击选择提案就可以了,因此我同意您的意见,即可能是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();
}
} });