TableViewer 如何为具有编辑支持的单元格设置插入符号位置并删除 FULL_SELECTION

TableViewer how to set caret position for the cell with Editing Support and remove FULL_SELECTION

我有一个 TableViewer,它的最后一列有 EditingSupport 来编辑单元格的值。查看器的样式设置为 FULL_SELECTION。 单击单元格后,文本值将完全 selected:

我可以开始编辑,它会清除当前值"max value"并开始新值。

但是,如果我想将鼠标移动到特定位置进行编辑,我需要延迟一秒左右。如果我在第一次点击 select 后点击得太快,单元格将被删除 select。

有什么办法可以避免吗?我可以让单元格不完全 selected 吗?还是始终将插入符放在文本末尾?谢谢!

我假设您正在使用 TextCellEditor 作为单元格编辑器。

创建您自己的 class 扩展 TextCellEditor 并覆盖 doSetFocus class 如下:

@Override
protected void doSetFocus()
{
  super.doSetFocus();

  if (text != null) {
     text.setSelection(0, 0);
   }
}

要删除全选并将插入符号设置为文本末尾,请覆盖 doSetFocus 并设置 text.setSelection( text.getText().length() );

要忽略双击事件,将 getDoubleClickTimeout 覆盖为 return 0