2016-11-15 11 views
0

我正在使用TextViewer并且默认情况下,我正在获取SWT上下文菜单复制和全选。有没有办法从操作中删除键绑定?如何在不使用键绑定的情况下在TextViewer中进行复制操作?

特殊情况:我需要这个,因为键绑定与我在主树中的键绑定发生冲突。

我不希望用户使用Ctrl + CTextViewer并只使用上下文菜单右键单击“复制”。

+0

如果你觉得一个答案的问题解决了,请把它标记为通过点击绿色的对勾“接受”。这有助于将重点放在仍然没有答案的旧帖子上。 –

回答

0

首先,您不应该尝试禁用平台提供的常用功能。

应用程序软件建立在平台上的原因是:为应用程序间的通用用户交互提供一致的接口。

如果您仍想禁用某个键绑定,则可以使用StyledText::addKeyVerifyListener或Display :: addFilter()来拦截键击并阻止处理相应的事件。

例如:

StyledText styledText = textViewer.getTextWidget(); 
styledText.addVerifyKeyListener(new VerifyKeyListener() { 
    @Override 
    public void verifyKey(VerifyEvent event) { 
    if(event.character == 'c' && (event.stateMask & SWT.CTRL) != 0) { 
     event.doit = false; 
    } 
    } 
}); 
相关问题