如何在没有键绑定的情况下在TextViewer中允许复制操作?

时间:2016-11-15 11:51:50

标签: swt jface key-bindings

我正在使用TextViewer,默认情况下,我正在获取SWT上下文菜单“复制”和“全选”。有没有办法从操作中删除键绑定?

特例:我需要这个,因为键绑定与我在主树中的键绑定冲突。

我不希望用户对TextViewer使用 Ctrl + C ,只使用右键单击上下文菜单'复制'。

1 个答案:

答案 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;
    }
  }
} );