怎样判断是否应当使用输入框

  输入框,就是用户可以自由输入文本的地方。当需要判断是否需要使用输入框时,可以遵循一条原则:凡是需要用户自主输入文本的地方,几乎都必须使用输入框。

  输入框的常见用法:输入登录账号和密码、输入角色名称、输入聊天内容等。

创建输入框

  输入框的3个核心控件:BoxCollider组件允许UI能输入事件、UIInput组件允许玩家能输入自己的文字、一个UILabel来显示输入的文字。

  第一种创建方式:自己拼装

    (1)创建一个Sprite作为输入框的底板。

    (2)为这个输入框的底板附上UIInput组件,附加方法为AddComponent->NGUI->UI->Input Field。

    (3)为这个输入框附加一个BoxCollider,附加方法为选中底板Sprite,然后选择Unity顶部NGUI菜单并选择Attach->BoxCollider。或者AddComponent->Physics->BoxCollider(此种方式创建的需要自主调整Box的尺寸用以匹配输入框大小)。

    (4)在这个输入框下面创建一个Label子物体,创建方法为选中输入框,然后选择Unity顶部NGUI菜单,选择Create->Label即可。

    (5)将这个新创建的Label子物体拖入到底框的Input组件中的Label选项中。

  第二种创建方式:Prefab Tool Bar中直接拖入

核心组件Input设置

  Input组件是输入框的核心组件,NGUI显示文字几乎全部依赖Label组件,所以,Input组件它本身是无法显示文字的,它必须和一个Label有一定的关联,让这个Label来帮助显示Input的文本内容。

  1.Label设置

    如果在这里不设置Label,运行之后单击输入框将会报错,导致输入框无法使用。

  2.Starting Value

    默认输入的文字。

    默认输入的文字:当运行游戏时,输入框默认输入的文字,这个文本是模拟玩家输入进去的,就好像登录QQ时自动填充了你的QQ号一样,这个文本是一个属于输入的文本、真实有效的输入文本(只不过它是初始自动就输入进去了而已)。

    初始显示的文本:这个是输入框在没有接收用户输入时显示的提示文本,例如:“请输入密码”,“请在这里单击进行聊天”等提示性文字,用户单机输入框之后文字就消失了变成了用户输入的文本的显示。这个初始显示的文本只有一个纯粹的提示作用,不属于输入的文本、是一个无效的文本。

    初始显示的文本在Input相关联的Label中进行设置,这个关联的Label的文本内容就是输入框初始显示的内容。

  3.Saved As

    输入的内容在Player Pref中的哪个字段保存。这个一般用不到,而且它会自动保存,基本不用去管它。如果有特殊需求,可以在这里设置。

  4.Active Text Color

    活动文本的颜色和透明度设置,也就是用户在输入文字时的文字颜色和透明度。

  5.Inactive Color

    不活动的文字颜色和透明度,这个可以用来设定初始显示的文字的颜色透明度。

  6.Caret Color

    这个可以设定插入符的颜色和透明度。

  7.Selection Color

    选中的颜色和透明度,这个表示的是选中输入的文字时,覆盖在文本上的那一层遮罩的颜色,就像在Word办公软件中,输入的字可以通过拖动鼠标光标来选中他们一样。

  8.Input Type

    输入类型的设置,默认为Standard标准输入。

    Standard

      标准输入类型,输入的文字会正常一个挨一个地显示出来,它的对齐方式全部由Input相关联的Label决定。

    AutoCorrect

      自动调整模式,类似于Label中的自动调整模式。

    Passward

      密码模式,在这种模式下,输入的文字会自动地变成*符号。

  9.Mobile Type

    这是输入文本时,键盘的类型设定。它有以下几种类型:  

      Default;

      ASCII Capable(任何格式都允许);

      NumbersAndPunctuation;

      URL;

      NumberPad;

      PhonePad;

      NamePhonePad;

      EmailAddress;

  10.Validation

    验证。默认为None没有验证,可以验证整数、浮点数等,如果输入的字符不属于验证类型将无法输入(整数允许视为浮点数)。

  11.Character Limit

    可输入的最大字符数限制。需要注意的是,一个汉子要占用两个字符。

  12.On Submit

    这里是提交输入内容时的触发事件函数设定。

  13.On Change

    这里是当输入内容改变时的触发事件函数设定。

输入框使用的一些注意事项

  (1)输入框Input本身是无法显示文字的,它必须借助于一个Label来帮它显示输入的文本。

  (2)输入框输入文字的字体,是在输入框关联的Label中设定的,这个关联的Label用的什么字体,则输入框中输入的内容就会是什么字体。

  (3)输入框必须要有一个BoxCollider和一个Sprite底框,否则无法输入。

  (4)输入框中对输入的文本的设定都受关联的Label的影响,因为它本身是借助这个Label来显示文字的。但是,如果发生冲突,比如在Input组件中设定文字颜色为红色,而在关联的Label中设定文字颜色为白色,那么将会以Input中的设置为准。

  (5)如果发生以下情况,都将造成输入框无法显示文字:

    超出最大字符数限定了;

    输入的字符不符合要求的验证类型;

    关联的Label所选用的字体中没有这个文字;

    关联的Label中设定了文字大小超出范围则不显示;

    将文字设为全透明了;

  (6)输入的文字可以从Input中的value变量读取,也可以从关联的Label中的text变量读取。

  (7)将相关联的Label设为输入框的子物体,就可以保证输入的文字和底框保持相对位置不变。

制作输入框(Input)的更多相关文章

  1. 输入框 input只能输入正数和小数点

    输入框 input只能输入正数和小数点  限制文本框只能输入正数,负数,小数 onkeyup="value=value.replace(/[^\-?\d.]/g,'')" 限制文本 ...

  2. div模拟输入框input/textarea

    //html<!--填写信息--> <div class="info-wrap"> <form class="formToCheck&quo ...

  3. palacehoder的自定义样式【输入框input /文本域textarea】

    7.palacehoder的自定义样式[输入框input /文本域textarea] 因为每个浏览器的CSS选择器都有所差异,所以需要针对每个浏览器做单独的设定(可以在冒号前面写input和texta ...

  4. 微信小程序获取输入框(input)内容

    微信小程序---获取输入框(input)内容 wxml <input placeholder="请输入手机号码" maxlength="11" type= ...

  5. 怎么去掉select的下拉箭头和输入框input类型为number时的上下箭头

    一.去掉select的下拉箭头 方法一:在select外面加一个div,设置select宽度大于div的宽度,并加一个超出隐藏属性overflow:hidden,小三角会隐藏掉: 方法二:给selec ...

  6. 文本输入框input将输入转换为统一大小写

    转载地址:http://blog.csdn.net/yieryi_/article/details/52078596 文本输入框input将输入转换为统一大小写,通常有两种方法:JS和CSS方法. 1 ...

  7. VUE实现Studio管理后台(九):开关(Switch)控件,输入框input系列

    接下来几篇作文,会介绍用到的输入框系列,今天会介绍组普通的调用方式,因为RXEditor要求复杂的输入功能,后面的例子会用VUE的component动态调用,就没有今天的这么直观了,控件的实现原理都一 ...

  8. html页面输入框input的美化

    input输入框是网页必不可少的组件,可是每个浏览器对于输入框的显示样式各有不同 例如:    上图分别就是谷歌浏览器和IE浏览器自带显示的输入框,样式也不足人意,所以大多都会自己写样式 以下是一个简 ...

  9. Bootstrap系列 -- 14. 表单控件输入框input

    每一个表单都是由表单控件组成.离开了控件,表单就失去了意义.接下来的我们简单的来了解Bootstrap框架中表单控件的相关知识. 单行输入框,常见的文本输入框,也就是input的type属性值为tex ...

随机推荐

  1. oracle中序列的使用

    转载:http://blog.csdn.net/java958199586/article/details/7360152 序列: 是oacle提供的用于产生一系列唯一数字的数据库对象. l  自动提 ...

  2. 双向BFS

    转自“Yuan” 如果目标也已知的话,用双向BFS能很大提高速度 单向时,是 b^len的扩展. 双向的话,2*b^(len/2)  快了很多,特别是分支因子b较大时 至于实现上,网上有些做法是用两个 ...

  3. [改善Java代码]使用构造函数协助描述枚举项

    一.分析 一般来说,我们经常使用的枚举项只有一个属性,即排序号,其默认值是从0.1.2... ....但是除了排序号外,枚举还有一个(或多个)属性:枚举描述,它的含义是通过枚举的构造函数,声明每个枚举 ...

  4. .NET学习笔记(1)— C#学习路线图

    目录 一:引言 二:.NET技术体系 三:常用工具汇总 四:学习资源汇总 五:书籍推荐 六:关于阅读技术书籍的经验 七:总结   一:引言 因为工作调整,从PHP开发零基础转型到.NET开发,前期没有 ...

  5. ActiveMQ(5.10.0) - Message Redelivery and DLQ Handling

    When messages expire on the ActiveMQ broker (they exceed their time-to-live, if set) or can’t be red ...

  6. 【转载】Android推送方案分析(MQTT/XMPP/GCM)

    http://m.oschina.net/blog/82059 本文主旨在于,对目前Android平台上最主流的几种消息推送方案进行分析和对比,比较客观地反映出这些推送方案的优缺点,帮助大家选择最合适 ...

  7. C#的提交表单方式WebClient

    向网站提交页面的主要代码 string postString = "arg1=a&arg2=b";//这里即为传递的参数,可以用工具抓包分析,也可以自己分析,主要是form ...

  8. SQL按照日、周、月、年统计数据

    写sql语句分别按日,星期,月,季度,年统计销售额 --按日 select sum(consume),day([date]) from consume_record where year([date] ...

  9. 分享:在微信公众平台做HTML5游戏经验谈(转载与http://software.intel.com/zh-cn/blogs/2013/04/03/html5)

    分享:在微信公众平台做HTML5游戏经验谈 Dawei Cheng 程大伟... 于 星期三, 03/04/2013 - 03:19 提交 最近微信公众游戏平台讨论得如火如荼,大有HTML5游戏即将引 ...

  10. Cocos2d-x实例:设置背景音乐与音效-HelloWorld场景实现

    HelloWorld场景就是游戏中的主菜单场景.HelloWorld.h文件代码如下: #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h& ...