b6c02d88创建于 8 天前历史提交

RichEditor

说明:

当前为Beta阶段。

支持图文混排和文本交互式编辑的组件。

导入模块

import kit.ArkUI.*

子组件

创建组件

init(?RichEditorController)

public init(controller: ?RichEditorController)

功能: 创建RichEditor组件。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
controller ?RichEditorController - 富文本控制器。

通用属性/通用事件

通用属性:全部支持。

说明:

  • align属性只支持上方、中间和下方位置的对齐方式。
  • 不支持borderImage属性。

通用事件:全部支持。

组件属性

func bindSelectionMenu(?RichEditorSpanType, ?CustomBuilder, ?ResponseType, ?SelectionMenuOptions)

public func bindSelectionMenu(
    spanType!: ?RichEditorSpanType = None,
    content!: ?CustomBuilder,
    responseType!: ?ResponseType = None,
    options!: ?SelectionMenuOptions
): This

功能: 设置自定义选择菜单。

说明:

自定义菜单超长时,建议内部嵌套Scroll组件使用,避免键盘被遮挡。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
spanType ?RichEditorSpanType None 命名参数。 指定选择菜单的类型。
初始值:RichEditorSpanType.Text。
content ?CustomBuilder - 命名参数。 指定选择菜单的内容。使用时结合@Builder和bind方法使用。
初始值:{ => }。
responseType ?ResponseType None 命名参数。 指定选择菜单的响应类型。
初始值:ResponseType.LongPress。
options ?SelectionMenuOptions - 命名参数。 指定选择菜单的选项。
初始值:SelectionMenuOptions()。

func copyOptions(?CopyOptions)

public func copyOptions(value: ?CopyOptions): This

功能: 设置文本内容支持复制粘贴的能力。

说明:

  • copyOptions不为CopyOptions.None时,长按组件内容,会弹出文本选择弹框。如果通过bindSelectionMenu等方式自定义文本选择菜单,则会弹出自定义的菜单。
  • 设置copyOptions为CopyOptions.None,复制、剪切功能不生效。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?CopyOptions - 复制粘贴的能力。初始值:CopyOptions.LocalDevice。

func customKeyboard(?CustomBuilder)

public func customKeyboard(value!: ?CustomBuilder): This

功能: 定义自定义键盘。

说明:

  • 当设置自定义键盘时,输入框激活后不会打开系统输入法,而是加载指定的自定义组件。
  • 自定义键盘的高度可以通过自定义组件根节点的height属性设置,宽度不可设置,使用系统默认值。
  • 自定义键盘采用覆盖原始界面的方式呈现,不会对应用原始界面产生压缩或者上提。
  • 自定义键盘无法获取焦点,但是会拦截手势事件。
  • 默认在输入控件失去焦点时,关闭自定义键盘。
  • 如果设备支持拍摄输入,设置自定义键盘后,该输入框会不支持拍摄输入。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?CustomBuilder - 命名参数。 富文本编辑器的自定义键盘。使用时结合@Builder和bind方法使用。
初始值:{ => }。

组件事件

func onReady(?VoidCallback)

public func onReady(callback: ?VoidCallback): This

功能: 富文本组件初始化完成后,触发事件。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?VoidCallback - 回调函数,富文本组件初始化完成后触发回调。
初始值:{ => }。

func aboutToImeInput(?Callback<RichEditorInsertValue, Bool>)

public func aboutToImeInput(callback: ?Callback<RichEditorInsertValue, Bool>): This

功能: 输入法输入内容前,触发事件。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?Callback<RichEditorInsertValue, Bool> - 回调函数,输入法输入内容前触发。RichEditorInsertValue:输入法将要输入内容信息。true:组件执行添加内容操作。false:组件不执行添加内容操作。
初始值:{ _ => false }。

func onImeInputComplete(?Callback<RichEditorTextSpanResult, Unit>)

public func onImeInputComplete(callback: ?Callback<RichEditorTextSpanResult, Unit>): This

功能: 输入法完成输入后,触发事件。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?Callback<RichEditorTextSpanResult, Unit> - 回调函数,输入法完成输入后触发回调。RichEditorTextSpanResult:输入法完成输入后的文本Span信息。
初始值:{ _ => false }。

func onDeleteComplete(?VoidCallback)

public func onDeleteComplete(callback: ?VoidCallback): This

功能: 输入法完成删除后,触发事件。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?VoidCallback - 回调函数,订阅输入法完成删除时触发。
初始值:{ => }。

func aboutToDelete(?Callback<RichEditorDeleteValue, Bool>)

public func aboutToDelete(callback: ?Callback<RichEditorDeleteValue, Bool>): This

功能: 输入法删除内容前,触发事件。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?Callback<RichEditorDeleteValue, Bool> - 回调函数,输入法删除内容前触发该回调 。RichEditorDeleteValue:准备删除的内容所在的文本Span信息。true:组件执行删除操作。false:组件不执行删除操作。
初始值:{ _ => false }。

func onSelect(?Callback<RichEditorSelection, Unit>)

public func onSelect(callback: ?Callback<RichEditorSelection, Unit>): This

功能: 鼠标左键双击选中内容时,会触发事件;松开鼠标左键后,会再次触发事件。手指长按选中内容时,会触发事件;松开手指后,会再次触发事件。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?Callback<RichEditorSelection, Unit> - 回调函数,RichEditorSelection为选中的所有Span信息。
初始值:{ _ => }。

func onPaste(?PasteEventCallback)

public func onPaste(callback: ?PasteEventCallback): This

功能: 完成粘贴前,触发事件。

说明:

开发者可以通过该方法,覆盖系统默认行为,实现图文的粘贴。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?PasteEventCallback - 回调函数,完成粘贴前,触发回调。PasteEvent:定义用户粘贴事件。
初始值:{ _ => }。

func onDidChange(?OnDidChangeCallback)

public func onDidChange(callback: ?OnDidChangeCallback): This

功能: 组件执行增删操作后,触发事件。文本实际未发生增删时,不触发该事件。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?OnDidChangeCallback - 回调函数,组件执行增删操作后,触发回调。文本实际未发生增删时,不触发该回调。参数:图文变化前后的内容范围。
初始值:{ rangeBefore: TextRange, rangeAfter: TextRange => }。

基础类型定义

interface RichEditorSpanResult

public interface RichEditorSpanResult {}

功能: 定义RichEditor span结果。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

class RichEditorSpanPosition

public class RichEditorSpanPosition {
    public var spanIndex: ?Int32
    public var spanRange: ?(Int32, Int32)
    public init(
        spanIndex: ?Int32,
        spanRange: ?(Int32, Int32)
    )
}

功能: 定义span位置。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var spanIndex

public var spanIndex: ?Int32

功能: 定义span的索引。

类型: ?Int32

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var spanRange

public var spanRange: ?(Int32, Int32)

功能: span的范围。

类型: ?(Int32, Int32)

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(?Int32, ?(Int32, Int32))

public init(
    spanIndex: ?Int32,
    spanRange: ?(Int32, Int32)
)

功能: RichEditorSpanPosition构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
spanIndex ?Int32 - span索引。初始值:0。
spanRange ?(Int32, Int32) - span范围。初始值:(0, 0)。

class RichEditorTextStyleResult

public class RichEditorTextStyleResult {
    public var fontColor: String
    public var fontSize: Float64
    public var fontStyle: FontStyle
    public var fontWeight: Int32
    public var fontFamily: String
    public var decoration: DecorationStyleResult
    public init(
        fontColor: String,
        fontSize: Float64,
        fontStyle: FontStyle,
        fontWeight: Int32,
        fontFamily: String,
        decoration: DecorationStyleResult
    )
}

功能: 定义文本样式结果。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var fontColor

public var fontColor: String

功能: 字体颜色。

类型: String

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var fontSize

public var fontSize: Float64

功能: 字体大小。

类型: Float64

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var fontStyle

public var fontStyle: FontStyle

功能: 字体样式。

类型: FontStyle

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var fontWeight

public var fontWeight: Int32

功能: 字体粗细。

类型: Int32

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var fontFamily

public var fontFamily: String

功能: 字体族。

类型: String

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var decoration

public var decoration: DecorationStyleResult

功能: 字体装饰。

类型: DecorationStyleResult

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(String, Float64, FontStyle, Int32, String, DecorationStyleResult)

public init(
    fontColor: String,
    fontSize: Float64,
    fontStyle: FontStyle,
    fontWeight: Int32,
    fontFamily: String,
    decoration: DecorationStyleResult
)

功能: RichEditorTextStyleResult构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
fontColor String - 字体颜色。
fontSize Float64 - 字体大小。
fontStyle FontStyle - 字体样式。
fontWeight Int32 - 字体粗细。
fontFamily String - 字体族。
decoration DecorationStyleResult - 字体装饰。

class RichEditorImageSpanStyleResult

public class RichEditorImageSpanStyleResult {
    public var size: ?(Float64, Float64)
    public var verticalAlign: ?ImageSpanAlignment
    public var objectFit: ?ImageFit
    public var layoutStyle: ?RichEditorLayoutStyle
}

功能: 定义span图像样式结果。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var size

public var size: ?(Float64, Float64)

功能: 图像大小。

类型: ?(Float64, Float64)

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var verticalAlign

public var verticalAlign: ?ImageSpanAlignment

功能: 图像垂直对齐。

类型: ?ImageSpanAlignment

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var objectFit

public var objectFit: ?ImageFit

功能: 图像适应方式。

类型: ?ImageFit

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var layoutStyle

public var layoutStyle: ?RichEditorLayoutStyle

功能: RichEditor图像布局样式。

类型: ?RichEditorLayoutStyle

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

class RichEditorTextSpanResult

public class RichEditorTextSpanResult <: RichEditorSpanResult {
    public var spanPosition: RichEditorSpanPosition
    public var value: String
    public var textStyle: RichEditorTextStyleResult
    public var offsetInSpan: (Int32, Int32)
    public init(
        spanPosition: RichEditorSpanPosition,
        value: String,
        textStyle: RichEditorTextStyleResult,
        offsetInSpan: (Int32, Int32)
    )
}

功能: 定义文本span结果。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

父类型:

var spanPosition

public var spanPosition: RichEditorSpanPosition

功能: 文本span的位置。

类型: RichEditorSpanPosition

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var value

public var value: String

功能: 文本span的内容。

类型: String

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var textStyle

public var textStyle: RichEditorTextStyleResult

功能: 文本样式。

类型: RichEditorTextStyleResult

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var offsetInSpan

public var offsetInSpan: (Int32, Int32)

功能: span中的偏移量。

类型: (Int32, Int32)

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(RichEditorSpanPosition, String, RichEditorTextStyleResult, (Int32, Int32))

public init(
    spanPosition: RichEditorSpanPosition,
    value: String,
    textStyle: RichEditorTextStyleResult,
    offsetInSpan: (Int32, Int32)
)

功能: RichEditorTextSpanResult构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
spanPosition RichEditorSpanPosition - 文本span的位置。
value String - 文本span的内容。
textStyle RichEditorTextStyleResult - 文本样式。
offsetInSpan (Int32, Int32) - span中的偏移量。

class RichEditorImageSpanResult

public class RichEditorImageSpanResult <: RichEditorSpanResult {
    public var spanPosition: ?RichEditorSpanPosition
    public var valuePixelMap: Option<PixelMap>
    public var valueResourceStr: ?String
    public var imageStyle: ?RichEditorImageSpanStyleResult
    public var offsetInSpan: ?(Int32, Int32)
    public init(
        spanPosition!: ?RichEditorSpanPosition = Option.None,
        valuePixelMap!: Option<PixelMap> = Option.None,
        valueResourceStr!: ?String = None,
        imageStyle!: ?RichEditorImageSpanStyleResult = None,
        offsetInSpan!: ?(Int32, Int32) = None
    )
}

功能: 定义图像span。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

父类型:

var spanPosition

public var spanPosition: ?RichEditorSpanPosition

功能: 图像span的位置。

类型: ?RichEditorSpanPosition

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var valuePixelMap

public var valuePixelMap: Option<PixelMap>

功能: 图像span的像素图。

类型: Option<PixelMap>

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var valueResourceStr

public var valueResourceStr: ?String

功能: 图像span的资源字符串。

类型: ?String

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var imageStyle

public var imageStyle: ?RichEditorImageSpanStyleResult

功能: 图像属性。

类型: ?RichEditorImageSpanStyleResult

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var offsetInSpan

public var offsetInSpan: ?(Int32, Int32)

功能: span中的偏移量。

类型: ?(Int32, Int32)

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(?RichEditorSpanPosition, Option<PixelMap>, ?String, ?RichEditorImageSpanStyleResult, ?(Int32, Int32))

public init(
    spanPosition!: ?RichEditorSpanPosition = Option.None,
    valuePixelMap!: Option<PixelMap> = Option.None,
    valueResourceStr!: ?String = None,
    imageStyle!: ?RichEditorImageSpanStyleResult = None,
    offsetInSpan!: ?(Int32, Int32) = None
)

功能: RichEditorImageSpanResult构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
spanPosition ?RichEditorSpanPosition Option.None 命名参数。 图像span的位置。初始值:RichEditorSpanPosition(0, (0, 0))。
valuePixelMap Option<PixelMap> Option.None 命名参数。 图像span的像素图。
valueResourceStr ?String None 命名参数。 图像span的资源字符串。初始值:""。
imageStyle ?RichEditorImageSpanStyleResult None 命名参数。 图像属性。初始值:RichEditorImageSpanStyleResult()。
offsetInSpan ?(Int32, Int32) None 命名参数。 span中的偏移量。初始值:(0, 0)。

class RichEditorSelection

public class RichEditorSelection {
    public var selection: (Int32, Int32)
    public var spans: ArrayList<RichEditorSpanResult>
    public init(selection: ?(Int32, Int32), spans: ?ArrayList<RichEditorSpanResult>)
}

功能: 选中内容信息。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var selection

public var selection: (Int32, Int32)

功能: 选中范围。

类型: (Int32, Int32)

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var spans

public var spans: ArrayList<RichEditorSpanResult>

功能: 选中的文本内容。

类型: ArrayList<RichEditorSpanResult>

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(?(Int32, Int32), ?ArrayList<RichEditorSpanResult>)

public init(selection: ?(Int32, Int32), spans: ?ArrayList<RichEditorSpanResult>)

功能: RichEditorSelection构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
selection ?(Int32, Int32) - 选中范围。初始值:(0, 0)。
spans ?ArrayList<RichEditorSpanResult> - 选中的文本内容。初始值:ArrayList<RichEditorSpanResult>()。

class RichEditorDeleteValue

public class RichEditorDeleteValue {
    public var offset: Int32
    public var direction: RichEditorDeleteDirection
    public var length: Int32
    public var richEditorDeleteSpans: ArrayList<RichEditorSpanResult>
    public init(
        offset: Int32,
        direction: RichEditorDeleteDirection,
        length: Int32,
        richEditorDeleteSpans: ArrayList<RichEditorSpanResult>
    )
}

功能: 提供从文本中删除值的接口。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var offset

public var offset: Int32

功能: 删除的偏移量。

类型: Int32

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var direction

public var direction: RichEditorDeleteDirection

功能: 删除的方向。

类型: RichEditorDeleteDirection

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var length

public var length: Int32

功能: 删除的文本长度。

类型: Int32

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var richEditorDeleteSpans

public var richEditorDeleteSpans: ArrayList<RichEditorSpanResult>

功能: 删除的span对象。

类型: ArrayList<RichEditorSpanResult>

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(Int32, RichEditorDeleteDirection, Int32, ArrayList<RichEditorSpanResult>)

public init(
    offset: Int32,
    direction: RichEditorDeleteDirection,
    length: Int32,
    richEditorDeleteSpans: ArrayList<RichEditorSpanResult>
)

功能: RichEditorDeleteValue构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
offset Int32 - 删除的偏移量。
direction RichEditorDeleteDirection - 删除的方向。
length Int32 - 删除的文本长度。
richEditorDeleteSpans ArrayList<RichEditorSpanResult> - 删除的span对象。

class TextRange

public class TextRange {
    public var start: ?Int32
    public var end: ?Int32
    public init(start: ?Int32, end: ?Int32)
}

功能: 定义文本类型组件的范围。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var start

public var start: ?Int32

功能: 起始偏移量。

类型: ?Int32

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var end

public var end: ?Int32

功能: 结束偏移量。

类型: ?Int32

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(?Int32, ?Int32)

public init(start: ?Int32, end: ?Int32)

功能: TextRange构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
start ?Int32 - 起始偏移量。初始值:-1。
end ?Int32 - 结束偏移量。初始值:-1。

class PasteEvent

public class PasteEvent {}

功能: 定义粘贴事件。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

func preventDefault()

public func preventDefault(): Unit

功能: 覆盖系统粘贴事件。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

class RichEditorInsertValue

public class RichEditorInsertValue {
    public var insertOffset: Int32
    public var insertValue: String
    public init(
        insertOffset: ?Int32,
        insertValue: ?String
    )
}

功能: 定义RichEditor插入值。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var insertOffset

public var insertOffset: Int32

功能: 插入偏移量。

类型: Int32

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var insertValue

public var insertValue: String

功能: 插入值。

类型: String

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(?Int32, ?String)

public init(
    insertOffset: ?Int32,
    insertValue: ?String
)

功能: RichEditorInsertValue构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
insertOffset ?Int32 - 插入偏移量。初始值:0。
insertValue ?String - 插入值。初始值:""。

class DecorationStyleResult

public class DecorationStyleResult {
    public var decorationType: ?TextDecorationType
    public var color: ResourceColor
    public init(
        decorationType: TextDecorationType,
        color: ResourceColor
    )
}

功能: 定义装饰样式结果。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var decorationType

public var decorationType: ?TextDecorationType

功能: 装饰类型。

类型: ?TextDecorationType

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var color

public var color: ResourceColor

功能: 颜色。

类型: ResourceColor

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(TextDecorationType, ResourceColor)

public init(
    decorationType: TextDecorationType,
    color: ResourceColor
)

功能: DecorationStyleResult构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
decorationType TextDecorationType - 装饰类型。
color ResourceColor - 颜色。

class SelectionMenuOptions

public class SelectionMenuOptions {
    public var onAppear: ?VoidCallback
    public var onDisappear: ?VoidCallback
    public init(onAppear!: ?() -> Unit = None, onDisappear!: ?() -> Unit = None)
}

功能: 定义选择菜单选项。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var onAppear

public var onAppear: ?VoidCallback

功能: 选择菜单出现时的回调函数。

类型: ?VoidCallback

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var onDisappear

public var onDisappear: ?VoidCallback

功能: 选择菜单消失时的回调函数。

类型: ?VoidCallback

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(?() -> Unit, ?() -> Unit)

public init(onAppear!: ?() -> Unit = None, onDisappear!: ?() -> Unit = None)

功能: SelectionMenuOptions构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
onAppear ?() -> Unit None 命名参数。 选择菜单出现时的回调函数。初始值:{=>}。
onDisappear ?() -> Unit None 命名参数。 选择菜单消失时的回调函数。初始值:{=>}。

class RichEditorTextStyle

public class RichEditorTextStyle {
    public var fontColor: ?ResourceColor
    public var fontSize: ?Length
    public var fontStyle: ?FontStyle
    public var fontWeight: ?FontWeight
    public var fontFamily: ?ResourceStr
    public var decoration: ?TextDecorationOptions
    public init(
        fontColor!: ?ResourceColor = None,
        fontSize!: ?Length = None,
        fontStyle!: ?FontStyle = None,
        fontWeight!: ?FontWeight = None,
        fontFamily!: ?ResourceStr = None,
        decoration!: ?TextDecorationOptions = None
    )
}

功能: 定义span文本样式。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var fontColor

public var fontColor: ?ResourceColor

功能: 字体颜色。

类型: ?ResourceColor

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var fontSize

public var fontSize: ?Length

功能: 字体大小。

类型: ?Length

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var fontStyle

public var fontStyle: ?FontStyle

功能: 字体样式。

类型: ?FontStyle

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var fontWeight

public var fontWeight: ?FontWeight

功能: 字体粗细。

类型: ?FontWeight

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var fontFamily

public var fontFamily: ?ResourceStr

功能: 字体族。

类型: ?ResourceStr

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var decoration

public var decoration: ?TextDecorationOptions

功能: 字体装饰。

类型: ?TextDecorationOptions

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(?ResourceColor, ?Length, ?FontStyle, ?FontWeight, ?ResourceStr, ?TextDecorationOptions)

public init(
    fontColor!: ?ResourceColor = None,
    fontSize!: ?Length = None,
    fontStyle!: ?FontStyle = None,
    fontWeight!: ?FontWeight = None,
    fontFamily!: ?ResourceStr = None,
    decoration!: ?TextDecorationOptions = None
)

功能: RichEditorTextStyle构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
fontColor ?ResourceColor None 命名参数。 字体颜色。初始值:Color.Black。
fontSize ?Length None 命名参数。 字体大小。初始值:16.vp。
fontStyle ?FontStyle None 命名参数。 字体样式。初始值:FontStyle.Normal。
fontWeight ?FontWeight None 命名参数。 字体粗细。初始值:FontWeight.Normal。
fontFamily ?ResourceStr None 命名参数。 字体族。初始值:DEFAULT_FONT。
decoration ?TextDecorationOptions None 命名参数。 字体装饰。初始值:TextDecorationOptions(decorationType: TextDecorationType.None, color: Color.Black)。

class RichEditorTextSpanOptions

public class RichEditorTextSpanOptions {
    public var offset: ?Int32
    public var style: ?RichEditorTextStyle
    public init(offset!: ?Int32 = None, style!: ?RichEditorTextStyle = None)
}

功能: 定义RichEditor的span选项。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var offset

public var offset: ?Int32

功能: 添加文本span的偏移量。

类型: ?Int32

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var style

public var style: ?RichEditorTextStyle

功能: 文本样式。

类型: ?RichEditorTextStyle

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(?Int32, ?RichEditorTextStyle)

public init(offset!: ?Int32 = None, style!: ?RichEditorTextStyle = None)

功能: RichEditorTextSpanOptions构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
offset ?Int32 None 命名参数。 添加文本span的偏移量。初始值:Int32.Max。
style ?RichEditorTextStyle None 命名参数。 文本样式。初始值:RichEditorTextStyle()。

class RichEditorLayoutStyle

public class RichEditorLayoutStyle {
    public var margin: ?Margin
    public var borderRadius: ?BorderRadiuses
    public init(margin!: ?Margin = None, borderRadius!: ?BorderRadiuses = None)
    public init(margin!: ?Length, borderRadius!: ?Length)
}

功能: 定义richEditor图像布局样式。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var margin

public var margin: ?Margin

功能: 边距。

类型: ?Margin

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var borderRadius

public var borderRadius: ?BorderRadiuses

功能: 边框圆角。

类型: ?BorderRadiuses

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(?Margin, ?BorderRadiuses)

public init(margin!: ?Margin = None, borderRadius!: ?BorderRadiuses = None)

功能: RichEditorLayoutStyle构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
margin ?Margin None 命名参数。 边距。初始值:Margin()。
borderRadius ?BorderRadiuses None 命名参数。 边框圆角。初始值:BorderRadiuses()。

init(?Length, ?Length)

public init(margin!: ?Length, borderRadius!: ?Length)

功能: RichEditorLayoutStyle构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
margin ?Length - 命名参数。 边距。
borderRadius ?Length - 命名参数。 边框圆角。

class RichEditorImageSpanStyle

public class RichEditorImageSpanStyle {
    public var size: Option<(Length, Length)>
    public var verticalAlign: ?ImageSpanAlignment
    public var objectFit: ?ImageFit
    public init(
        size!: Option<(Length, Length)> = Option.None,
        verticalAlign!: ?ImageSpanAlignment = Option.None,
        objectFit!: ?ImageFit = Option.None
    )
}

功能: 定义span图像样式。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var size

public var size: Option<(Length, Length)>

功能: 图像大小。

类型: Option<(Length, Length)>

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var verticalAlign

public var verticalAlign: ?ImageSpanAlignment

功能: 图像垂直对齐。

类型: ?ImageSpanAlignment

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var objectFit

public var objectFit: ?ImageFit

功能: 图像适应方式。

类型: ?ImageFit

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(Option<(Length, Length)>, ?ImageSpanAlignment, ?ImageFit)

public init(
    size!: Option<(Length, Length)> = Option.None,
    verticalAlign!: ?ImageSpanAlignment = Option.None,
    objectFit!: ?ImageFit = Option.None
)

功能: RichEditorImageSpanStyle构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
size Option<(Length, Length)> Option.None 命名参数。 图像大小。
verticalAlign ?ImageSpanAlignment Option.None 命名参数。 图像垂直对齐。初始值:ImageSpanAlignment.Bottom。
objectFit ?ImageFit Option.None 命名参数。 图像适应方式。初始值:ImageFit.Cover。

class RichEditorImageSpanOptions

public class RichEditorImageSpanOptions {
    public var offset: ?Int32
    public var imageStyle: ?RichEditorImageSpanStyle
    public init(
        offset!: ?Int32 = None,
        imageStyle!: ?RichEditorImageSpanStyle = None
    )
}

功能: 定义RichEditor的图像span选项。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var offset

public var offset: ?Int32

功能: 添加图像span的偏移量。

类型: ?Int32

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var imageStyle

public var imageStyle: ?RichEditorImageSpanStyle

功能: 图像样式。

类型: ?RichEditorImageSpanStyle

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(?Int32, ?RichEditorImageSpanStyle)

public init(
    offset!: ?Int32 = None,
    imageStyle!: ?RichEditorImageSpanStyle = None
)

功能: RichEditorImageSpanOptions构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
offset ?Int32 None 命名参数。 添加图像span的偏移量。初始值:Int32.Max。
imageStyle ?RichEditorImageSpanStyle None 命名参数。 图像样式。初始值:RichEditorImageSpanStyle()。

class RichEditorParagraphStyle

public class RichEditorParagraphStyle {
    public var textAlign: ?TextAlign
    public var leadingMargin: ?LeadingMarginType
    public init(textAlign!: ?TextAlign = None)
    public init(textAlign!: ?TextAlign = None, leadingMargin!: ?Length)
    public init(textAlign!: ?TextAlign = None, leadingMargin!: ?LeadingMarginPlaceholder)
}

功能: 定义段落样式。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var textAlign

public var textAlign: ?TextAlign

功能: 文本对齐。

类型: ?TextAlign

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var leadingMargin

public var leadingMargin: ?LeadingMarginType

功能: 首行缩进。

类型: ?LeadingMarginType

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(?TextAlign)

public init(textAlign!: ?TextAlign = None)

功能: RichEditorParagraphStyle构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
textAlign ?TextAlign None 命名参数。 文本对齐。初始值:TextAlign.Start。

init(?TextAlign, ?Length)

public init(textAlign!: ?TextAlign = None, leadingMargin!: ?Length)

功能: RichEditorParagraphStyle构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
textAlign ?TextAlign None 命名参数。 文本对齐。初始值:TextAlign.Start。
leadingMargin ?Length - 命名参数。 首行缩进。

init(?TextAlign, ?LeadingMarginPlaceholder)

public init(textAlign!: ?TextAlign = None, leadingMargin!: ?LeadingMarginPlaceholder)

功能: RichEditorParagraphStyle构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
textAlign ?TextAlign None 命名参数。 文本对齐。初始值:TextAlign.Start。
leadingMargin ?LeadingMarginPlaceholder - 命名参数。 首行缩进。

class TextDecorationOptions

public class TextDecorationOptions {
    public var decorationType: ?TextDecorationType
    public var color: ?ResourceColor
    public init(decorationType!: ?TextDecorationType, color!: ?ResourceColor = None)
}

功能: 定义文本装饰选项。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var decorationType

public var decorationType: ?TextDecorationType

功能: 装饰类型。

类型: ?TextDecorationType

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var color

public var color: ?ResourceColor

功能: 颜色。

类型: ?ResourceColor

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(?TextDecorationType, ?ResourceColor)

public init(decorationType!: ?TextDecorationType, color!: ?ResourceColor = None)

功能: TextDecorationOptions构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
decorationType ?TextDecorationType - 命名参数。 装饰类型。初始值:TextDecorationType.None。
color ?ResourceColor None 命名参数。 颜色。初始值:Color.Black。

class LeadingMarginPlaceholder

public class LeadingMarginPlaceholder {
    public var pixelMap: PixelMap
    public var size: ?(Length, Length)
    public init(pixelMap!: PixelMap, size!: ?(Length, Length))
}

功能: 定义段落的首行缩进占位符。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var pixelMap

public var pixelMap: PixelMap

功能: 占位符像素图。

类型: PixelMap

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

var size

public var size: ?(Length, Length)

功能: 占位符大小。

类型: ?(Length, Length)

读写能力: 可读写

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

init(PixelMap, ?(Length, Length))

public init(pixelMap!: PixelMap, size!: ?(Length, Length))

功能: LeadingMarginPlaceholder构造函数。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
pixelMap PixelMap - 命名参数。 占位符像素图。
size ?(Length, Length) - 命名参数。 占位符大小。初始值:(0.0.px, 0.0.px)。

class RichEditorBaseController

public open class RichEditorBaseController {}

功能: 提供RichEditor的基础控制器。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

func getCaretOffset()

public func getCaretOffset(): Int32

功能: 从控制器获取光标偏移量。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

返回值:

类型 说明
Int32 光标偏移量。

func setCaretOffset(?Int32)

public func setCaretOffset(offset: ?Int32): Bool

功能: 设置光标偏移量。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
offset ?Int32 - 光标偏移量。初始值:-1。

返回值:

类型 说明
Bool 设置结果。

class RichEditorController

public class RichEditorController <: RichEditorBaseController {
    public init()
}

功能: 提供RichEditor的控制器。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

父类型:

init()

public init()

功能: 创建RichEditorController类型的对象。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

func addTextSpan(?ResourceStr, ?RichEditorTextSpanOptions)

public func addTextSpan(content!: ?ResourceStr, options!: ?RichEditorTextSpanOptions = None): Int32

功能: 添加文本内容,如果组件光标闪烁,插入后光标位置更新为新插入文本的后面。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
content ?ResourceStr - 命名参数。 文本内容。初始值:""。
options ?RichEditorTextSpanOptions None 命名参数。 文本选项。初始值:RichEditorTextSpanOptions()。

返回值:

类型 说明
Int32 添加完成的TextSpan所在的位置。

func addImageSpan(?ResourceStr, ?RichEditorImageSpanOptions)

public func addImageSpan(value!: ?ResourceStr, options!: ?RichEditorImageSpanOptions = None): Int32

功能: 添加图片内容,如果组件光标闪烁,插入后光标位置更新为新插入图片的后面。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?ResourceStr - 命名参数。 图片内容。初始值:""。
options ?RichEditorImageSpanOptions None 命名参数。 图片选项。初始值:RichEditorImageSpanOptions()。

返回值:

类型 说明
Int32 添加完成的ImageSpan所在的位置。

func updateSpanStyle(?Int32, ?Int32, ?RichEditorTextStyle)

public func updateSpanStyle(start!: ?Int32 = None, end!: ?Int32 = None, textStyle!: ?RichEditorTextStyle): Unit

功能: 修改span样式。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
start ?Int32 None 命名参数。 起始位置。初始值:0。
end ?Int32 None 命名参数。 结束位置。初始值:Int32.Max。
textStyle ?RichEditorTextStyle - 命名参数。 文本样式。初始值:RichEditorTextStyle()。

func updateSpanStyle(?Int32, ?Int32, ?RichEditorImageSpanStyle)

public func updateSpanStyle(start!: ?Int32 = None, end!: ?Int32 = None, imageStyle!: ?RichEditorImageSpanStyle): Unit

功能: 修改span样式。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
start ?Int32 None 命名参数。 起始位置。初始值:0。
end ?Int32 None 命名参数。 结束位置。初始值:Int32.Max。
imageStyle ?RichEditorImageSpanStyle - 命名参数。 图像样式。初始值:RichEditorImageSpanStyle()。

func deleteSpans(?Int32, ?Int32)

public func deleteSpans(start!: ?Int32 = None, end!: ?Int32 = None): Unit

功能: 删除指定范围内的文本和图片。

说明:

当所有参数省略时,删除所有文本和图片。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
start ?Int32 None 命名参数。 起始位置,省略或者设置负值时表示从0开始。初始值:0。
end ?Int32 None 命名参数。 结束位置,省略或者超出文本范围时表示到结尾。初始值:Int32.Max。

func closeSelectionMenu()

public func closeSelectionMenu(): Unit

功能: 关闭自定义选择菜单或系统默认选择菜单。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

func updateParagraphStyle(?Int32, ?Int32, ?RichEditorParagraphStyle)

public func updateParagraphStyle(start!: ?Int32 = None, end!: ?Int32 = None, style!: ?RichEditorParagraphStyle): Unit

功能: 修改span样式。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
start ?Int32 None 命名参数。 起始位置。初始值:0。
end ?Int32 None 命名参数。 结束位置。初始值:-1。
style ?RichEditorParagraphStyle - 命名参数。 段落样式。初始值:RichEditorParagraphStyle()。

func getSpans(?Int32, ?Int32)

public func getSpans(start!: ?Int32 = None, end!: ?Int32 = None): ArrayList<RichEditorSpanResult>

功能: 获取Span信息。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
start ?Int32 None 命名参数。 起始位置。初始值:-1。
end ?Int32 None 命名参数。 结束位置。初始值:-1。

返回值:

类型 说明
ArrayList<RichEditorSpanResult> Span内容。

enum LeadingMarginType

public enum LeadingMarginType {
    | LengthType(Length)
    | PlaceholderType(LeadingMarginPlaceholder)
    | None
    | ...
}

功能: 定义首行缩进类型。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

LengthType(Length)

LengthType(Length)

功能: 长度类型。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

PlaceholderType(LeadingMarginPlaceholder)

PlaceholderType(LeadingMarginPlaceholder)

功能: 占位符类型。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

None

None

功能: 无。

系统能力: SystemCapability.ArkUI.ArkUI.Full

起始版本: 22

type PasteEventCallback

public type PasteEventCallback = (PasteEvent) -> Unit

功能: 执行粘贴操作时的回调函数。

类型: (PasteEvent) -> Unit

type OnDidChangeCallback

public type OnDidChangeCallback = (rangeBefore: TextRange, rangeAfter: TextRange) -> Unit

功能: 内容更改后的回调函数。

类型: (TextRange, TextRange) -> Unit

示例代码

package ohos_app_cangjie_entry

import kit.ArkUI.*
import ohos.arkui.state_macro_manage.*
import ohos.i18n.*
import ohos.resource_manager.*
import ohos.hilog.*
import ohos.resource.*

@Entry
@Component
class EntryView {
    let controller = RichEditorController()

    @State
    var position: Int32 = 0

    @Builder
    func builder() {
        Column {
            ForEach(["1", "2", "3", "4", "5", "6", "7", "8", "9", "*", "0", "#"], itemGeneratorFunc: {item: String, idx: Int64 =>
                Button(item)
                .width(40.vp)
                .height(40.vp)
                .fontColor(0x66000000)
                .fontSize(16.fp)
            })
        }
        .borderRadius(24.vp)
        .padding(top: 4.vp, bottom: 4.vp, left: 16.vp, right: 16.vp)
        .backgroundColor(Color.Green)
        .margin(right: 24.vp, bottom: 4.vp, top: 0.vp)
        .width(130.vp)
    }

    func build() {
        Column(space: 30) {
            Row {
                Button("getCaretOffset")
                .onClick({
                    evt =>
                    Hilog.info(0, "AppLogCj", controller.getCaretOffset().toString())
                    this.position = controller.getCaretOffset()
                }).width(400.px).height(150.px)

                Text("position: ${this.position.toString()}")
            }

            Row {
                Button("setCaretOffset 0")
                .onClick({
                    evt =>
                    controller.setCaretOffset(0)
                }).width(400.px).height(150.px)

                Text("position: ${this.position.toString()}")
            }

            Row {
                Button("addText Hello")
                .onClick({
                    evt =>
                    controller.addTextSpan(
                        content: "Hello",
                        options: RichEditorTextSpanOptions(
                            style: RichEditorTextStyle(
                                fontColor: Color(0XFF1298),
                                fontSize: 20.fp,
                                fontStyle: FontStyle.Italic,
                                decoration: TextDecorationOptions(
                                    decorationType: TextDecorationType.Overline,
                                    color: Color(0X12FF98)
                                ),
                            )
                        )
                    )
                }).width(400.px).height(150.px)

                Button("addImage")
                .onClick({
                    evt =>
                    controller.addImageSpan(
                        value: @r(app.media.startIcon),
                        options: RichEditorImageSpanOptions(
                            imageStyle: RichEditorImageSpanStyle(
                                size: (24.vp, 24.vp)
                            )
                        )
                    )
                }).width(400.px).height(150.px)
            }

            Row {
                Button("updateParagraphStyle")
                .onClick({
                    evt =>
                    let array = controller.updateParagraphStyle(
                        start: 0,
                        end: 100,
                        style: RichEditorParagraphStyle(
                            textAlign: TextAlign.Center,
                            leadingMargin: 24.px
                        )
                    )
                }).width(400.px).height(150.px)
            }

            RichEditor(controller)
            .customKeyboard(value: builder)
            .bindSelectionMenu(
                spanType: RichEditorSpanType.Text,
                content: builder,
                responseType: ResponseType.LongPress,
                options: SelectionMenuOptions(onAppear: { => Hilog.info(0, "AppLogCj", "SelectionMenuOptions onAppear")}, onDisappear: { => Hilog.info(0, "AppLogCj", "SelectionMenuOptions onDisappear")})
            )
            .copyOptions(CopyOptions.None)
            .onReady({ => Hilog.info(0, "AppLogCj", "RichEditor onReady!!")})
            .onDeleteComplete({ => Hilog.info(0, "AppLogCj", "RichEditor onDeleteComplete!!")})
            .onSelect({ value =>
                Hilog.info(0, "AppLogCj", "RichEditor onSelect. ${value.selection[0]} ~ ${value.selection[1]}")
            })
        }
    }
}

richeditor