前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HarmonyOS-UIAbitity-TextArea——【坚果派-红目香薰】

HarmonyOS-UIAbitity-TextArea——【坚果派-红目香薰】

作者头像
红目香薰
发布2024-02-24 09:28:43
910
发布2024-02-24 09:28:43
举报
文章被收录于专栏:CSDNToQQCodeCSDNToQQCode
摘要

作者:红目香薰 团队:坚果派 团队介绍:坚果派由坚果创建,团队拥有12个华为HDE以及若干其他领域的三十余位万粉博主运营。

TextArea

可以输入多行文本并支持响应部分输入事件的组件。

接口

TextArea(value?:{placeholder?: ResourceStr, text?: ResourceStr, controller?: TextAreaController})

参数:

参数名

参数类型

必填

参数描述

placeholder

ResourceStr

无输入时的提示文本。

text

ResourceStr

设置输入框当前的文本内容。

controller8+

TextAreaController

设置TextArea控制器。

属性

除支持通用属性外,还支持以下属性:

名称

参数类型

描述

placeholderColor

ResourceColor

设置placeholder文本颜色。

placeholderFont

Font

设置placeholder文本样式: - size: 设置文本尺寸,Length为number类型时,使用fp单位。 - weight: 设置文本的字体粗细,number类型取值[100, 900],取值间隔为100,默认为400,取值越大,字体越粗。 - family: 设置文本的字体列表。使用多个字体,使用','进行分割,优先级按顺序生效,例如:'Arial, sans-serif'。 - style: 设置文本的字体样式。

textAlign

TextAlign

设置文本水平对齐方式。 默认值:TextAlign.Start

caretColor

ResourceColor

设置输入框光标颜色。

inputFilter8+

{ value: Resource8+, error?: (value: string) => void }

通过正则表达式设置输入过滤器。满足表达式的输入允许显示,不满足的输入被忽略。仅支持单个字符匹配,不支持字符串匹配。例如:^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$,不支持过滤8到10位的强密码。 - value:设置正则表达式。 - error:正则匹配失败时,返回被忽略的内容。

事件

名称

功能描述

onChange(callback: (value: string) => void)

输入发生变化时,触发回调。

onCopy8+(callback:(value: string) => void)

长按输入框内部区域弹出剪贴板后,点击剪切板复制按钮,触发回调。 - value:复制的文本内容。

onCut8+(callback:(value: string) => void)

长按输入框内部区域弹出剪贴板后,点击剪切板剪切按钮,触发回调。 - value:剪切的文本内容。

onPaste8+(callback:(value: string) => void)

长按输入框内部区域弹出剪贴板后,点击剪切板粘贴按钮,触发回调。 - value:粘贴的文本内容。

TextAreaController8+

TextArea组件的控制器,通过它操作TextArea组件。

导入对象

controller: TextAreaController = new TextAreaController()

caretPosition8+

caretPosition(value: number): void

设置输入光标的位置。

参数:

参数名

参数类型

必填

参数描述

value

number

从字符串开始到光标所在位置的字符长度。

代码示例:

代码语言:text
复制
 @Entry
 @Component
 struct Index {
   controller: TextAreaController = new TextAreaController()
   @State text: string = ''
   build() {
     Column() {
       TextArea({ placeholder: '你要输入的单词', controller: this.controller })
         .placeholderColor("rgb(0,0,225)")
         .placeholderFont({ size: 20, weight: 100, family: 'cursive', style: FontStyle.Italic })
         .textAlign(TextAlign.Center)
         .caretColor(Color.Blue)
         .fontSize(30)
         .fontWeight(FontWeight.Bold)
         .fontFamily("sans-serif")
         .fontStyle(FontStyle.Normal)
         .fontColor(Color.Red)
         .inputFilter('^[\u4E00-\u9FA5A-Za-z0-9_]+$', (value: string) => {
           console.info("显示" + value)
         })
         .onChange((value: string) => {
           this.text = value
           this.controller.caretPosition(-1)
         })
       Text(this.text).width('90%')
     }
   }
 }

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 摘要
  • TextArea
  • 接口
  • 属性
  • 事件
  • TextAreaController8+
    • 导入对象
      • caretPosition8+
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档