gpt4 book ai didi

java - ContentProposalAdapter 防止选择提案上出现新行

转载 作者:行者123 更新时间:2023-12-01 14:24:08 26 4
gpt4 key购买 nike

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

为什么UPDOWN箭头没有遍历,而返回键却遍历了。

如何防止在用于选择提案时将返回键插入到 StyledText 字段中。

最佳答案

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

我的问题完全相同,但换行符是在选定的提案之后插入的。通过双击选择提案效果很好,所以我同意你的观点,可能是 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();
}
} });

关于java - ContentProposalAdapter 防止选择提案上出现新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17299104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com