diff --git a/zh-cn/application-dev/ui/arkts-common-components-text-input.md b/zh-cn/application-dev/ui/arkts-common-components-text-input.md
index 2b9a2819c5c2b71f48333068e5a639fcffc75d99..0533f434d24cbd29e823db2839836072b68f2e9b 100644
--- a/zh-cn/application-dev/ui/arkts-common-components-text-input.md
+++ b/zh-cn/application-dev/ui/arkts-common-components-text-input.md
@@ -358,6 +358,180 @@ struct Index {

+## 监听输入状态
+
+输入框可以在文本输入的不同时刻触发回调,满足开发者监听文本变化的诉求。相关接口包括[onWillInsert](../reference/apis-arkui/arkui-ts/ts-basic-components-textinput.md#onwillinsert12)、[onWillDelete](../reference/apis-arkui/arkui-ts/ts-basic-components-textinput.md#onwilldelete12)、[onDidInsert](../reference/apis-arkui/arkui-ts/ts-basic-components-textinput.md#ondidinsert12)、[onDidDelete](../reference/apis-arkui/arkui-ts/ts-basic-components-textinput.md#ondiddelete12)、[onWillChange](../reference/apis-arkui/arkui-ts/ts-basic-components-textinput.md#onwillchange15)、[onChange](../reference/apis-arkui/arkui-ts/ts-basic-components-textinput.md#onchange)。可通过设置[enablePreviewText](../reference/apis-arkui/arkui-ts/ts-basic-components-textinput.md#enablepreviewtext12)属性选择是否开启预上屏。
+
+按照是否开启预上屏,分开讨论。用“你好朋友”和"hello my dear friend"举例,列举键盘输入、键盘删除、文本选择菜单粘贴、文本选择菜单剪切、剪贴板粘贴共5种场景下,输入框能触发的回调。
+
+### 关闭预上屏
+
+设置enablePreviewText(false),或者在输入法中关闭预上屏功能,可以关闭预上屏。
+
+1.键盘输入
+
+- 输入中文拼音:如输入拼音"nihao",在输入"n-i-h-a-o"时,输入的每个音素,都不触发任何回调。
+- 输入中文候选词:拼音"nihao"输入完成之后,点击候选词“你好”,依次触发onWillInsert、onWillChange、onDidInsert、onChange回调。
+- 点击中文联想词:汉字“你好”输入完成后,点击联想词“朋友”,依次触发onWillInsert、onWillChange、onDidInsert、onChange回调。
+- 输入英文:如输入"hello",在输入"h-e-l-l-o"时,输入的每个字母,依次触发onWillInsert、onWillChange、onDidInsert、onChange回调。
+
+2.文本选择菜单粘贴
+
+- 通过文本选择菜单粘贴中文:复制"你好朋友",双击空白文本框,点击文本选择菜单中的粘贴按钮,依次触发onWillChange、onChange回调。
+
+3.剪贴板粘贴
+
+- 通过剪贴板粘贴中文:复制"你好朋友",点击键盘最上方的剪贴板,依次触发onWillInsert、onWillChange、onDidInsert、onChange回调。
+
+4.键盘删除
+
+- 通过键盘删除中文:文本框中有“你好朋友”时,光标移动到“友”字后面,点击软键盘的删除键,依次触发onWillDelete、onWillChange、onDidDelete、onChange回调。
+
+5.文本选择菜单剪切
+
+- 通过文本选择菜单剪切中文:文本框中有“你好朋友”时,选择“友”字,点击文本选择菜单中的剪切按钮,依次触发onWillChange、onChange回调。
+
+> **说明:**
+>
+> 关闭预上屏时,文本选择菜单粘贴英文、剪贴板粘贴英文、键盘删除英文、文本选择菜单剪切英文场景下触发的回调,和增删中文的场景下触发的回调相同。
+
+### 开启预上屏
+
+设置enablePreviewText(true),并且在输入法中开启预上屏功能,可以开启预上屏。
+
+1.键盘输入
+
+- 输入中文拼音:如输入拼音"nihao",在输入"n-i-h-a-o"时,输入的每个音素,依次触发onWillChange、onChange回调。
+- 输入中文候选词:拼音"nihao"输入完成后,点击候选词“你好”,依次触发onWillChange、onChange回调。
+- 点击中文联想词:汉字“你好”输入完成后,点击联想词“朋友”,依次触发onWillInsert、onWillChange、onDidInsert、onChange回调。
+- 输入英文字母:如输入单词"hello",在输入"h-e-l-l-o"时,输入的每个字母,依次触发onWillInsert、onWillChange、onDidInsert、onChange回调。
+- 点击英文候选词:在字母"h-e-l-l-o"输入完成后,点击候选词"hello",触发两次onWillChange回调。
+- 点击英文联想词:单词"hello"输入完成后,点击联想词"my",依次触发onWillInsert、onWillChange、onDidInsert、onChange回调。
+
+2.文本选择菜单粘贴
+
+- 粘贴中文:复制“你好朋友”,双击空白文本框,点击文本选择菜单中的粘贴按钮,依次触发onWillChange、onChange回调。
+
+3.剪贴板粘贴
+
+- 通过剪贴板粘贴中文:复制“你好朋友”,点击键盘最上方的剪贴板,依次触发onWillInsert、onWillChange、onDidInsert、onChange回调。
+
+4.键盘删除
+
+- 通过键盘删除中文拼音:如输入拼音"nihao",在输入"n-i-h-a-o"之后,点击软键盘的删除键,依次触发onWillChange、onChange回调。
+- 通过键盘删除中文汉字:文本框中有“你好朋友”时,光标移动到“友”字后面,点击软键盘的删除键,依次触发onWillDelete、onWillChange、onDidDelete、onChange回调。
+- 通过键盘删除英文:文本框中有"hello"时,光标移动到字母"o",点击软键盘的删除键,依次触发onWillDelete、onWillChange、onDidDelete、onChange回调。
+
+5.文本选择菜单剪切
+
+- 剪切中文:文本框中有“你好朋友”时,选择“友”字,点击文本选择菜单中的剪切按钮,依次触发onWillChange、onChange回调。
+
+> **说明:**
+>
+> 开启预上屏时,文本选择菜单粘贴英文、剪贴板粘贴英文、文本选择菜单剪切英文场景下触发的回调,和增删中文的场景下触发的回调相同。
+
+### 示例 (增删文本触发回调)
+
+该示例开启、关闭预上屏时,增删中英文触发的回调。
+
+```
+@Entry
+@Component
+struct demo {
+ @State orderOnWillChange: number = 0;
+ @State orderOnWillInsert: number = 0;
+ @State orderOnWillDelete: number = 0;
+ @State orderOnDidInsert: number = 0;
+ @State orderOnDidDelete: number = 0;
+ @State orderOnChange: number = 0;
+ @State sharedOrder: number = 0;
+ @State valueEnablePreviewText: boolean = false;
+
+ build() {
+ Column({ space: 20 }) {
+ Text() {
+ Span('用于复制的文本:\n')
+ Span('你好朋友\n')
+ Span('hello my dear friend')
+ }
+ .copyOption(CopyOptions.LocalDevice)
+
+ TextInput() // 增删文本触发回调
+ .margin(20)
+ .borderWidth(1)
+ .onWillChange(() => {
+ this.sharedOrder++;
+ this.orderOnWillChange = this.sharedOrder;
+ return true;
+ })
+ .onWillInsert(() => {
+ this.sharedOrder++;
+ this.orderOnWillInsert = this.sharedOrder;
+ return true;
+ })
+ .onWillDelete(() => {
+ this.sharedOrder++;
+ this.orderOnWillDelete = this.sharedOrder;
+ return true;
+ })
+ .onDidInsert(() => {
+ this.sharedOrder++;
+ this.orderOnDidInsert = this.sharedOrder;
+ })
+ .onDidDelete(() => {
+ this.sharedOrder++;
+ this.orderOnDidDelete = this.sharedOrder;
+ })
+ .onChange(() => {
+ this.sharedOrder++;
+ this.orderOnChange = this.sharedOrder;
+ })
+ .enablePreviewText(this.valueEnablePreviewText)
+
+ Flex({ wrap: FlexWrap.Wrap }) {
+ Text('callback').width('50%')
+ Text('order').width('50%') // 回调触发顺序
+ Text('onWillChange').width('50%')
+ Text(`${this.orderOnWillChange}`).width('50%')
+ Text('onWillInsert').width('50%')
+ Text(`${this.orderOnWillInsert}`).width('50%')
+ Text('onWillDelete').width('50%')
+ Text(`${this.orderOnWillDelete}`).width('50%')
+ Text('onDidInsert').width('50%')
+ Text(`${this.orderOnDidInsert}`).width('50%')
+ Text('onDidDelete').width('50%')
+ Text(`${this.orderOnDidDelete}`).width('50%')
+ Text('onChange').width('50%')
+ Text(`${this.orderOnChange}`).width('50%')
+ Text('enablePreviewText').width('50%')
+ Text(`${this.valueEnablePreviewText}`).width('50%')
+ }
+ .width('80%')
+
+ Button('reset order') // 重置触发顺序记录
+ .onClick(() => {
+ this.orderOnWillInsert = 0;
+ this.orderOnWillChange = 0;
+ this.orderOnDidInsert = 0;
+ this.orderOnWillDelete = 0;
+ this.orderOnDidDelete = 0;
+ this.orderOnChange = 0;
+ this.sharedOrder = 0;
+ })
+
+ Text('测试预上屏场景,需要安装支持预上屏的输入法')
+ Button('reverse enablePreviewText') // 修改enablePreviewText
+ .onClick(() => {
+ this.valueEnablePreviewText = !this.valueEnablePreviewText;
+ })
+ }
+ .height('100%')
+ }
+}
+```
+
+
+
## 相关实例
针对文本输入开发,有以下相关实例可供参考:
diff --git a/zh-cn/application-dev/ui/figures/text_input_event_case_1.jpeg b/zh-cn/application-dev/ui/figures/text_input_event_case_1.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..b8eba6f25cb5bd1cb9fab8d15f11d53adc44338f
Binary files /dev/null and b/zh-cn/application-dev/ui/figures/text_input_event_case_1.jpeg differ