鸿蒙组件学习_TextInput

说明

该组件从API Version 7 开始支持。

参数:
placeholder     设置无输入时的提示文本
text            设置输入框当前的文本内容
controller      设置TextInput控制器(从API Version 8开始支持)
属性:
type    设置输入框类型
    InputType.Normal    正常
    InputType.Number    纯数字
    PhoneNumber         电话
    Email               邮箱格式
    Possword            密码格式输入
placeholderColor        设置placeholder文本颜色
placeholderFont         设置placeholder文本样式
enterKeyType            设置输入法回车键类型,目前仅支持默认型
caretColor               设置输入框光标颜色
maxLength               设置文本的最大输入字符数
inputFilter             正则表达式,目前仅支持单个字符的匹配(API Version 8 开始支持)
    - value             设置正则表达式
    - error             正则表达式失败时,返回被过滤的内容
copyOption              设置输入的文本是否可复制(API Version 9 开始支持)
showPasswordIcon        密码输入模式时,输入框末尾的图标是否显示。
style                   设置输入框为默认风格或内联输入风格(API Version 9 开始支持)
    TextInputStyle.default  选中文本与字体大小样式有关
    TextInputStyle.inline   选中文本与输入框高度有关
textAlign               设置输入文本在输入框中的对齐方式(API Version 9 开始支持)
回调函数
onChange(输入内容发生变化)
onSubmit(按下回车键触发该回调)
onEditChanged(输入状态变化时,触发该回调)
onCopy  点击剪切板复制按钮  value: 复制的文本内容
onCut   点击剪切板剪切按钮  value: 剪切的文本内容
onPaste 点击剪切板粘贴按钮  value: 粘贴的文本内容

练习

@Entry
@Component
struct TextInput_Test{
  private controller: TextInputController = new TextInputController()
  @State account:string = ''
  @State password:string = ''

  build(){
      Column({space: 10}){
        TextInput({
          placeholder: '账号',
          text: '账号',
          controller: this.controller
        })
          .type(InputType.Normal)
          .margin({top: 20})
          .width('90%')
          .borderWidth(1)
          .placeholderColor(Color.Blue)
          .placeholderFont({size: 20})
          .textAlign(TextAlign.Start)
          .maxLength(11)
          .caretColor(Color.Green)
          .style(TextInputStyle.Default)
          .copyOption(CopyOptions.InApp)
          .inputFilter('a',(str) =>{
            return str
          })
          .onChange((str) => {
            this.account = str
          })
        TextInput({
          placeholder: '密码',
          text: '密码',
          controller: this.controller
        })
          .type(InputType.Password)
          .width('90%')
          .borderWidth(1)
          .placeholderColor('#f00')
          .placeholderFont({size: 20})
          .textAlign(TextAlign.Start)
          .maxLength(11)
          .showPasswordIcon(true)
          .copyOption(CopyOptions.InApp)
          .onChange((str) => {
            this.password = str
          })
        Text(this.account)
          .fontSize(20)
          .fontColor(Color.Brown)
          .width('100%')
          .height(100)
        Text(this.password)
          .fontSize(20)
          .fontColor(Color.Brown)
          .width('100%')
          .height(100)
      }.alignItems(HorizontalAlign.Center)
       .width('100%')
  }
}
  • 13
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SDL_TEXTINPUT是Simple DirectMedia Layer(SDL)库中的一个事件类型,用于处理文本输入。它允许用户在SDL应用程序中输入文本,例如在文本框或命令行界面中输入文字。 当用户在键盘上输入字符时,SDL_TEXTINPUT事件将被触发。这个事件包含了用户输入的文本内容,可以通过SDL_Event结构体的text属性来获取。通常情况下,你需要监听SDL_TEXTINPUT事件,并将用户输入的文本追加到你的应用程序中的文本缓冲区或显示区域。 以下是一个使用SDL_TEXTINPUT事件的简单示例: ```c #include <SDL2/SDL.h> int main() { SDL_Init(SDL_INIT_VIDEO); SDL_Window* window = SDL_CreateWindow("SDL Text Input", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 800, 600, 0); SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0); SDL_StartTextInput(); // 开始接收文本输入事件 bool quit = false; SDL_Event event; while (!quit) { while (SDL_PollEvent(&event)) { if (event.type == SDL_QUIT) { quit = true; } else if (event.type == SDL_TEXTINPUT) { // 处理文本输入事件 printf("Text Input: %s\n", event.text.text); } } SDL_RenderClear(renderer); SDL_RenderPresent(renderer); } SDL_StopTextInput(); // 停止接收文本输入事件 SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); return 0; } ``` 这个示例程序创建了一个SDL窗口,并在窗口中监听SDL_TEXTINPUT事件。当用户输入文本时,程序会将输入的文本打印到控制台上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linux-hzh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值