unity 使用UI上的数字按钮,给text添加数字,并且显示光标,删除光标前数字,

ops/2024/11/28 23:09:45/

今天有个需求,输入身份证,但是不用键盘,要点击按钮输入数字,并且可以控制光标,
1、数字按钮:点击后text添加数字内容
2、删除按钮:删除光标前的一个字符
3、左箭头:移动光标向左移动
在这里插入图片描述

text内容显示光标并控制

  public void InitNumberButton(){//number是这些按钮的父物体Button[] buttons=  number.GetComponentsInChildren<Button>();StringBuilder builder=new StringBuilder();foreach (Button button in buttons){if(button.name=="Delect"){button.onClick.AddListener(() => {DeleteCharacterBeforeCursor();});}else if(button.name=="zuo"){button.onClick.AddListener(() => {MoveCursorLeft();});}else{button.onClick.AddListener(() => {//currentText = builder.Append(button.name).ToString();characterToInsert=button.name;// identityInput.text = builder.Append(button.name).ToString();InsertCharacter();});}}}private string currentText = "";  // 当前的文本内容private int cursorPosition = 0;  // 光标的位置(索引)private string characterToInsert = "A";// 更新显示文本(包括光标位置)void UpdateDisplayText(){// 在光标位置插入特殊符号来模拟光标string textWithCursor = currentText.Insert(cursorPosition, "|");card.text = textWithCursor;}// 插入字符并将光标移到字符后面void InsertCharacter(){// 在光标位置插入字符currentText = currentText.Insert(cursorPosition, characterToInsert);// 将光标移到插入字符后面cursorPosition++;// 更新显示UpdateDisplayText();}// 控制光标向左移动void MoveCursorLeft(){// 如果光标没有移到最左边,则移动光标if (cursorPosition > 0){cursorPosition--;}// 更新显示UpdateDisplayText();}// 删除光标前的一个字符void DeleteCharacterBeforeCursor(){// 如果光标不在文本开头,则删除光标前的字符if (cursorPosition > 0){// 删除光标前的字符currentText = currentText.Remove(cursorPosition - 1, 1);// 将光标位置移动到删除的位置cursorPosition--;// 更新显示UpdateDisplayText();}}

http://www.ppmy.cn/ops/137498.html

相关文章

centos和ubuntu有什么区别?

CentOS与Ubuntu的区别在于以下几个方面&#xff1a;1、源码基础不同&#xff1b;2、设计理念不同&#xff1b;3、使用场景不同&#xff1b;4、软件包管理不同&#xff1b;整体上看&#xff0c;CentOS更倾向于企业级服务器应用&#xff0c;稳定性较强&#xff1b;而Ubuntu更注重…

蓝桥杯每日真题 - 第21天

题目&#xff1a;(空间) 题目描述&#xff08;12届 C&C B组A题&#xff09; 解题思路&#xff1a; 转换单位&#xff1a; 内存总大小为 256MB&#xff0c;换算为字节&#xff1a; 25610241024268,435,456字节 计算每个整数占用空间&#xff1a; 每个 32 位整数占用…

物联网实验室建设方案

一、物联网实验室建设 (1) 基础理论教学云平台 唯众基础理论教学云平台是一个专为物联网相关专业教学打造的综合性在线教学平台。该平台凭借先进的技术架构和丰富的教学资源&#xff0c;为师生提供了一个高效、便捷、互动的学习环境。以下是该平台的主要特点和功能描述&#…

2023年十四届蓝桥杯Scratch01月stema选拔赛—鹦鹉学舌

第14届蓝桥杯Scratch01月stema选拔赛真题 点击下方链接&#xff0c;查看程序演示效果&#xff1a; https://www.hixinao.com/scratch/creation/show-331.html 如需查看选择题、编程题、全套真题可自行前往题库中心&#xff0c;按需查找&#xff5e; 题库中心支持在线刷题&…

Java图书管理系统(简易保姆级)

前面学习了这么多知识&#xff0c;为了巩固之前的知识&#xff0c;我们就要写一个图书管理系统来帮助大家复习&#xff0c;让大家的知识融会贯通~~~ 话不多说&#xff0c;直接开始今天的内容~ 首先呢&#xff0c;我们要有一个大体的思路&#xff1a; 实现效果思路有两种情况&a…

node.js中使用express.static()托管静态资源

express.static()定义 express.static(root, [options])是一个中间件函数&#xff0c;负责为Express应用提供静态资源服务。它允许你指定一个或多个目录作为静态资源的根目录&#xff0c;当客户端请求这些资源时&#xff0c;Express会查找并返回对应的文件。 安装express npm i…

Jmeter中的监听器

3&#xff09;监听器 1--查看结果树 用途 调试测试计划&#xff1a;查看每个请求的详细信息&#xff0c;帮助调试和修正测试计划。分析响应数据&#xff1a;查看服务器返回的响应数据&#xff0c;验证请求是否成功。检查错误&#xff1a;识别和分析请求失败的原因。 配置步骤…

鸿蒙学习使用本地真机运行应用/元服务 (开发篇)

文章目录 1、前提条件2、使用USB连接方式3、使用无线调试连接方式4、运行 1、前提条件 在Phone和Tablet中运行HarmonyOS应用/元服务的操作方法一致&#xff0c;可以采用USB连接方式或者无线调试的连接方式。两种连接方式是互斥的&#xff0c;只能使用一种&#xff0c;无法同时…