一、getCaretOffset
这玩意貌似没有什么参考意义,被它坑得还以为自己逻辑完全就是有问题的
二、getSpans
根据获取的全局文本span信息,来确定需要操作的光标位置,返回值为嵌套对象,需要的东西都在这里啦
话不多说,上代码!
let result:Array<RichEditorTextSpanResult> = this.controller.getSpans({start:0}) as Array<RichEditorTextSpanResult> let resLength = result.length if (result[resLength - 1].value === "\n" && result[resLength - 2].value === "· ") { let offset = result[resLength - 2].spanPosition.spanRange[0] this.controller.deleteSpans({start:offset,end:offset + 3}) this.disorderChecked = !this.disorderChecked } else { if (this.disorderChecked) { this.controller.addTextSpan('· ',{ style:{ fontSize:24, fontWeight:900 }, paragraphStyle:{textAlign:TextAlign.Start}, }) }