RichEditor 的文本单击时会有光标,可否去除?并且要确保长按时有两个把手且选中全部 HarmonyOS 鸿蒙Next

RichEditor 的文本单击时会有光标,可否去除?并且要确保长按时有两个把手且选中全部 HarmonyOS 鸿蒙Next RichEditor 的文本单击时会有光标,可否去除?并且要确保长按时有两个把手且选中全部

2 回复

可以参考这样的写法,单击的时候,设置光标颜色为透明,长按的时候光标颜色设置为所要的颜色

@Entry
@Component
struct RichEditorComponentExample {
  editorController = new RichEditorController();
  @State caretColor:string = '#00ff0000'
  build() {
    Column() {
      RichEditor({ controller: this.editorController })
        .id('RichEditor')
        .width('100%').backgroundColor(Color.Yellow)
        .caretColor(this.caretColor)  // 设置光标颜色
        .onReady(() => {
          this.editorController.addTextSpan('组件设置了光标手柄颜色。', {
            style: {
              fontColor: Color.Black,
              fontSize: 15
            },
            gesture:
            {
              onClick: () => {
                this.caretColor = '#00ff0000'
              },
              onLongPress: () => {
                this.caretColor = '#ff0000'
              }
            }
          })
          // 自动获取焦点
          focusControl.requestFocus('RichEditor');
        })
    }
  }
}

更多关于RichEditor 的文本单击时会有光标,可否去除?并且要确保长按时有两个把手且选中全部 HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next系统中,RichEditor组件默认情况下单击时会显示光标。如果要去除单击时的光标,可以通过设置RichEditorfocusable属性为false来实现。这样可以确保单击时不会显示光标。

为了确保长按时有两个把手且选中全部文本,可以通过设置RichEditorselectAllOnFocus属性为true。这样在长按时,系统会自动选中全部文本,并显示两个把手供用户调整选中范围。

具体实现代码如下:

import { RichEditor } from '@ohos.rich-editor';

let richEditor = new RichEditor(context);
richEditor.focusable = false; // 去除单击时的光标
richEditor.selectAllOnFocus = true; // 长按时选中全部文本并显示把手
回到顶部