TextInput

说明:

当前为Beta阶段。

单行文本输入框组件。当前仅支持基本输入模式,无特殊限制。

导入模块

import kit.ArkUI.*

子组件

创建组件

init(?ResourceStr, ?ResourceStr, ?TextInputController)

public init(placeholder!: ?ResourceStr = None, text!: ?ResourceStr = None, controller!: ?TextInputController = None)

功能: 创建一个包含占位符文本、当前文本内容和控制器的TextInput对象。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
placeholder ?ResourceStr None 命名参数。 占位符文本,无输入时显示的文本。
text ?ResourceStr None 命名参数。 TextInput的当前值。
controller ?TextInputController None 命名参数。 TextInput组件的控制器。

通用属性/通用事件

通用属性:全部支持。

通用事件:全部支持。

说明:

单行输入框可设置.width(LengthMetrics.AUTO)使组件宽度自适应文本宽度,自适应时组件宽度受constraintSize属性以及父容器传递的最大最小宽度限制。

组件属性

func caretColor(?ResourceColor)

public func caretColor(value: ?ResourceColor): This

功能: 设置光标的颜色。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?ResourceColor - 光标的颜色。
初始值:0xFF007DFF。

func customKeyboard(?CustomBuilder, ?Bool)

public func customKeyboard(value: ?CustomBuilder, supportAvoidance!: ?Bool = None): This

功能: 定义文本输入的自定义键盘。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?CustomBuilder - 设置TextInput的自定义键盘。
初始值:{ => }。
supportAvoidance ?Bool None 命名参数。 TextInput的自定义键盘选项。
初始值:false。

func enableKeyboardOnFocus(?Bool)

public func enableKeyboardOnFocus(value: ?Bool): This

功能: 设置在获得焦点时是否请求键盘。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?Bool - 设置在获得焦点时是否请求键盘。
初始值:true。

func enterKeyType(?EnterKeyType)

public func enterKeyType(value: ?EnterKeyType): This

功能: 设置软键盘输入按钮的类型。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?EnterKeyType - 软键盘输入按钮的类型。
初始值:EnterKeyType.Done。

func fontFamily(?ResourceStr)

public func fontFamily(value: ?ResourceStr): This

功能: 设置文本的字体族。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?ResourceStr - 文本的字体族。
初始值:"HarmonyOS Sans"。

func fontColor(?ResourceColor)

public func fontColor(value: ?ResourceColor): This

功能: 设置文本的颜色。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?ResourceColor - 文本的颜色。
初始值:0xdbffffff。

func fontSize(?Length)

public func fontSize(value: ?Length): This

功能: 设置文本的字体大小。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?Length - 文本的字体大小。

func fontStyle(?FontStyle)

public func fontStyle(value: ?FontStyle): This

功能: 设置文本的字体样式。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?FontStyle - 文本的字体样式。
初始值:FontStyle.Normal。

func fontWeight(?FontWeight)

public func fontWeight(value: ?FontWeight): This

功能: 设置文本的字体粗细。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?FontWeight - 文本的字体粗细。
初始值:FontWeight.Normal。

func inputFilter(?ResourceStr, ?(String) -> Unit)

public func inputFilter(value: ?ResourceStr, error!: ?(String) -> Unit = None): This

功能: 设置文本的输入过滤规则。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?ResourceStr - 输入过滤规则。
初始值:""。
error ?(String) -> Unit None 命名参数。 输入错误时的回调函数。

func maxLength(?UInt32)

public func maxLength(value: ?UInt32): This

功能: 设置文本的最大长度。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?UInt32 - 文本的最大长度。

func maxLines(?Int32)

public func maxLines(value: ?Int32): This

功能: 定义文本输入的最大行数。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?Int32 - 文本输入的最大行数。
初始值:3。

func placeholderColor(?ResourceColor)

public func placeholderColor(value: ?ResourceColor): This

功能: 设置占位符文本的颜色。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?ResourceColor - 占位符文本的颜色。

func placeholderFont(?Length, ?FontWeight, ?String, ?FontStyle)

public func placeholderFont(size!: ?Length, weight!: ?FontWeight = None, family!: ?String = None,
    style!: ?FontStyle = None): This

功能: 设置占位符文本的字体属性。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
size ?Length - 命名参数。 占位符文本的字体大小。
初始值:(-1.0).px。
weight ?FontWeight None 命名参数。 占位符文本的字体粗细。
初始值:FontWeight.W400。
family ?String None 命名参数。 占位符文本的字体族。
初始值:""。
style ?FontStyle None 命名参数。 占位符文本的字体样式。
初始值:FontStyle.Normal。

func selectionMenuHidden(?Bool)

public func selectionMenuHidden(value: ?Bool): This

功能: 控制选择菜单是否弹出。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?Bool - 控制选择菜单是否弹出。
初始值:false。

func showUnderline(?Bool)

public func showUnderline(value: ?Bool): This

功能: 定义是否显示文本输入的下划线。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?Bool - 定义是否显示文本输入的下划线。
初始值:false。

func style(?TextInputStyle)

public func style(value: ?TextInputStyle): This

功能: 文本输入样式。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?TextInputStyle - 文本输入样式。
初始值:TextInputStyle.Default。

func textAlign(?TextAlign)

public func textAlign(value: ?TextAlign): This

功能: 设置文本的水平对齐方式。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?TextAlign - 文本的水平对齐方式。
初始值:TextAlign.Start。

组件事件

func onChange(?(String) -> Unit)

public func onChange(callback: ?(String) -> Unit): This

功能: 输入框内容发生变化时触发该回调。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?(String) -> Unit - 输入框内容发生变化时的回调函数。
初始值:{ _ => }。

func onCopy(?(String) -> Unit)

public func onCopy(callback: ?(String) -> Unit): This

功能: 使用剪贴板菜单时触发该回调。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?(String) -> Unit - 复制操作时的回调函数。
初始值:{ _ => }。

func onCut(?(String) -> Unit)

public func onCut(callback: ?(String) -> Unit): This

功能: 使用剪贴板菜单时触发该回调。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?(String) -> Unit - 剪切操作时的回调函数。
初始值:{ _ => }。

func onEditChange(?(Bool) -> Unit)

public func onEditChange(callback: ?(Bool) -> Unit): This

功能: 判断文本编辑状态是否发生变化。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?(Bool) -> Unit - 文本编辑状态变化时的回调函数。
初始值:{ _ => }。

func onPaste(?(String) -> Unit)

public func onPaste(callback: ?(String) -> Unit): This

功能: 使用剪贴板菜单时触发该回调。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?(String) -> Unit - 粘贴操作时的回调函数。
初始值:{ _ => }。

func onSubmit(?(EnterKeyType) -> Unit)

public func onSubmit(callback: ?(EnterKeyType) -> Unit): This

功能: 提交时触发该回调。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
callback ?(EnterKeyType) -> Unit - 提交时的回调函数。
初始值:{ _ => }。

基础类型定义

class TextInputController

public class TextInputController {
    public init()
}

功能: TextInputController是TextInput组件的控制器,可以定义该类型的对象并绑定至TextInput组件,实现对TextInput组件的控制。

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

起始版本: 22

init()

public init()

功能: TextInputController的构造函数。

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

起始版本: 22

func caretPosition(?Int32)

public func caretPosition(value: ?Int32): Unit

功能: 设置插入光标的位置。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
value ?Int32 - 光标位置。

func setTextSelection(?Int32, ?Int32, ?MenuPolicy)

public func setTextSelection(selectionStart: ?Int32, selectionEnd: ?Int32, options!: ?MenuPolicy = None): Unit

功能: 通过指定文本的起始和结束位置实现文本选择。

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

起始版本: 22

参数:

参数名 类型 必填 默认值 说明
selectionStart ?Int32 - 选中文本的起始位置。
selectionEnd ?Int32 - 选中文本的结束位置。
options ?MenuPolicy None 命名参数。 文本选择的选项。
初始值:MenuPolicy.Default。

func stopEditing()

public func stopEditing(): Unit

功能: 退出编辑状态。

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

起始版本: 22

示例代码

package ohos_app_cangjie_entry

import kit.ArkUI.*
import ohos.hilog.*
import ohos.arkui.state_macro_manage.*

@Entry
@Component
class EntryView {
    @State
    var text: String = ''
    @State
    var passwordState: Bool = false
    var controller: TextInputController = TextInputController()

    func build() {
        Column() {
            TextInput(text: this.text, placeholder: 'input your word...', controller: this.controller)
                .placeholderColor(Color.Gray)
                .placeholderFont(size: 14, weight: FontWeight.W100)
                .caretColor(Color.Blue)
                .width(95.percent)
                .height(40)
                .margin(20)
                .fontSize(14)
                .fontColor(Color.Black)
                .inputFilter('[a-z]', error: {
                    info: String => Hilog.error(0, "AppLogCj", "inputFilter error")
                })
                .onChange({
                    value: String => this.text = value
                })
            Text(this.text)
            Button('Set caretPosition 1')
                .margin(15)
                .onClick({
                    evt =>
                    // 将光标移动至第一个字符后
                    this
                        .controller
                        .caretPosition(1)
                })
            // 内联风格输入框
            TextInput(text: 'inline style')
                .width(95.percent)
                .height(50)
                .margin(20)
                .borderRadius(0)
                .style(TextInputStyle.Inline)
        }.width(100.percent)
    }
}

textinput