cocos代码研究(13)Widget子类EditBox学习笔记
理论基础
一个用来输入文本的类,继承自 Widget , 以及 IMEDelegate。
代码部分
Public枚举类型
enum KeyboardReturnType
键盘的返回键类型。
enum InputMode {
ANY, EMAIL_ADDRESS, NUMERIC, PHONE_NUMBER,
URL, DECIMAL, SINGLE_LINE
}
| 枚举值 | |
|---|---|
| ANY |
用户可以输入任何文本,包括换行符。 |
| EMAIL_ADDRESS |
允许用户输入一个电子邮件地址。 |
| NUMERIC |
允许用户输入一个整数值。 |
| PHONE_NUMBER |
允许用户输入一个电话号码。 |
| URL |
允许用户输入一个URL。 |
| DECIMAL |
允许用户输入一个实数 通过允许一个小数点扩展了kEditBoxInputModeNumeric模式 |
| SINGLE_LINE |
除了换行符以外,用户可以输入任何文本, |
EditBox::InputMode定义了可以输入的文本类型。
enum InputFlag {
PASSWORD, SENSITIVE, INITIAL_CAPS_WORD, INITIAL_CAPS_SENTENCE,
INTIAL_CAPS_ALL_CHARACTERS
}
| 枚举值 | |
|---|---|
| PASSWORD |
表明输入的文本是保密的数据,任何时候都应该隐藏起来 它隐含了EDIT_BOX_INPUT_FLAG_SENSITIVE |
| SENSITIVE |
表明输入的文本是敏感数据, 它禁止存储到字典或表里面,也不能用来自动补全和提示用户输入。 一个信用卡号码就是一个敏感数据的例子。 |
| INITIAL_CAPS_WORD |
这个标志的作用是设置一个提示,在文本编辑的时候,是否把每一个单词的首字母大写。 |
| INITIAL_CAPS_SENTENCE |
这个标志的作用是设置一个提示,在文本编辑,是否每个句子的首字母大写。 |
| INTIAL_CAPS_ALL_CHARACTERS |
自动把输入的所有字符大写。 |
EditBox::InputFlag定义如何显示和格式化输入文本。
创建一个固定大小的编辑框
static EditBox * create (const Size &size, //编辑框的大小。
Scale9Sprite *normalSprite,
Scale9Sprite *pressedSprite=nullptr,
Scale9Sprite *disabledSprite=nullptr)
创建一个固定大小的编辑框。
static EditBox * create (const Size &size, //编辑框的大小。
const std::string &normal9SpriteBg, //编辑框的背景图片名字。
TextureResType texType=TextureResType::LOCAL)
void setInputMode (InputMode inputMode)
设置编辑框的输入模式。
void setInputFlag (InputFlag inputFlag)
设置编辑框的输入标识,这个标识是EditBox::InputFlag类型
void setMaxLength (int maxLength)
设置编辑框允许输入的最大长度。 设置这个值默认允许多行输入 可以在Android,iOS和Windows Phone平台使用
int getMaxLength ()
获取编辑框的最大输入长度。
//与文字有关
void setText (const char *pText)
设置编辑框中输入的文本。
const char *getText (void)
获取编辑框中输入的文本。
void setFont (const char *pFontName, int fontSize)
设置编辑框的字体。仅支持系统字体
void setFontName (const char *pFontName)
设置字体的名字。仅支持系统字体
void setFontSize (int fontSize)
设置字体大小。
void setFontColor (const Color3B &color)
设置编辑框的文本字体颜色。
//与占位符有关
void setPlaceholderFont (const char *pFontName, int fontSize)
设置占位符的字体。仅支持系统字体
void setPlaceholderFontName (const char *pFontName)
设置占位符的字体名称。仅支持系统字体
void setPlaceholderFontSize (int fontSize)
设置占位符的字体大小。
void setPlaceholderFontColor (const Color3B &color)
当编辑框为空的时候,设置占位符文本字体颜色,
void setPlaceholderFontColor (const Color4B &color)
当编辑框为空的时候,设置占位符文本字体颜色
void setPlaceHolder (const char *pText)
当编辑框为空的时候,设置编辑框中的占位符文本
const char *getPlaceHolder (void)
当编辑框为空的时候,获取编辑框中的占位符文本
void setDelegate (EditBoxDelegate *delegate)
设置编辑框控件的代理类
void registerScriptEditBoxHandler (int handler)
注册一个脚本函数,当编辑框发出事件时,这个脚本函数会被调用
void unregisterScriptEditBoxHandler (void)
注销已注册的编辑框事件监听脚本函数
int getScriptEditBoxHandler (void)
获取一个脚本函数句柄
void setReturnType (EditBox::KeyboardReturnType returnType)
设置编辑框的键盘的Return类型,这个类型的取值为EditBox::KeyboardReturnType常量之一
virtual voidonEnter (void) override
每次当Node进入“stage”时才调用事件回调。 如果Node进入“stage”状态时伴随着一个转换(transition),那么事件将会在这个转换开始的时候被调用。 在onEnter过程中,你不能够接入“sister/brother”兄妹节点。 如果你重写了onEnter方法,你应该调用它的父类,e.g., Node::onEnter().
virtual voidonExit (void) override
每次当Node离开“stage”时才调用事件回调。 如果Node离开“stage”状态时伴随着一个转换(transition), 那么事件将会在这个转换结束的时候被调用。 在onEnter过程中中你不能够接入一个兄妹节点。 如果你重写onExit, 你应该调用它的父类, e.g., Node::onExit().
实例:
// top
std::string pNormalSprite = "extensions/green_edit.png";
_editName = ui::EditBox::create(editBoxSize, ui::Scale9Sprite::create(pNormalSprite));
_editName->setPosition(Vec2(visibleOrigin.x+visibleSize.width/, visibleOrigin.y+visibleSize.height*/));
_editName->setFontColor(Color3B::RED);
_editName->setPlaceHolder("Name:");
_editName->setPlaceholderFontColor(Color3B::WHITE);
_editName->setMaxLength();
_editName->setFontSize(editBoxSize.height/);
_editName->setText("vcocos代码研究(13)Widget子类EditBox学习笔记的更多相关文章
- cocos代码研究(1)Node学习笔记
理论部分 Node类继承自Ref类,是cocos框架中基础底层的一个封装类,与画面渲染相关的类一般都是继承自该类,例如Scene,Layer,Sprite,Sprite3D,Label,SpriteB ...
- cocos代码研究(5)Action学习笔记
理论部分 Action类也是cocos核心基础类之一,在游戏中起着非常重要的作用,继承自Ref,被 FiniteTimeAction(有限时间动作), Follow , 以及 Speed 继承. 有限 ...
- cocos代码研究(2)Label学习笔记
理论部分 Label类继承自Node类,中文翻译文字与字体,通常在应用开发中为模块作为提示和描述的作用,主要有3中不同的创建方式. 1.通过ttf字体包创建,通过指定本地已有的ttf格式的字体文件,创 ...
- cocos代码研究(1)sprite学习笔记
各种方法创建Sprite和Animate //图片创建法 参数一:图片资源路径 参数二:Rect选区 auto sprite = Sprite::create(, )); addChild(sprit ...
- cocos代码研究(2)Layer学习笔记
auto layer = Layer::create(); /*************华丽分割线*************/ auto layer = LayerColor::create(Colo ...
- cocos代码研究(21)Widget子类TextField学习笔记
基础理论 一个接受用户输入的widget. 输入文本的渲染基于TextFieldTTF. 如果你想用系统控制行为,请使用EditBox来替代.继承自 Widget. 代码实践 //与占位符有关void ...
- cocos代码研究(17)Widget子类RadioButtonGroup学习笔记
理论基础 RadioButtonGroup可以把指定的单选按钮组织起来, 形成一个组, 使它们彼此交互. 在一个RadioButtonGroup, 有且只有一个或者没有RadioButton可以处于被 ...
- cocos代码研究(16)Widget子类RadioButton学习笔记
理论基础 RadioButton是一种特定类型的两状态按钮,它与复选框相似.它可以 和RadioButtonGroup一起使用,形成一个"组".继承自AbstractCheckBu ...
- cocos代码研究(15)Widget子类CheckBox学习笔记
理论基础 复选框是一种特定类型的“两状态”按钮,可以处于“选中”和“未选中状态”.继承自AbstractCheckButton.注 AbstractCheckButton继承自Widget类. 代码部 ...
随机推荐
- java图形化Swing教程(一)
与多线程.泛型等不同,Swing主要在于使用. 以下主要放代码和凝视.少说话. (一)基本框架 package Swing; import java.awt.*; import javax.swing ...
- 13年10月 月赛第一场 set 4 迷宫问题
题目 给定一个n*m的迷宫,如S....#E.E其中,S代表开始位置,#代表不可行走的墙,E代表出口.主人公从开始位置出发,每次等概率的随机选择下一个可以行走的位置(可能会发生回溯),直到到达某一个出 ...
- Sublime Text 快捷键使用
Sublime Text 2包含了大量快捷操作,而且还很方便修改和追加自己喜欢的快捷键.查看快捷键的方式也很简单:------------------------------------------- ...
- Swift 高级运算符
本文转载至 http://my.oschina.net/sunqichao/blog?disp=2&catalog=0&sort=time&p=2 除了基本操作符中所讲的运算符 ...
- 鼠标聚焦到Input输入框时,按回车键刷新页面原因及解决方法
参考地址:http://blog.csdn.net/xuezhongsong/article/details/6859037 方式1:全局控制回车,13-回车键,27-ESC,113-F2 docum ...
- 什么是SQL注入式攻击和如何防范?
什么是SQL注入式攻击? 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影响 ...
- min-height的兼容性问题
1.经测试 IE+和其它主流浏览器均支持min-height属性,已经满足目前的需求. 2.当height和min-height同时设置时,浏览器自动选择数值更大的一个(测试IE7+及其他主流浏览器) ...
- 部署软件RDMA的步骤
date: 2018-08-28 19:46:56 参考原文原文:http://corasql.blog.51cto.com/5908329/1930455 ...
- rest_framework之解析器详解 05
解析器就是服务端写api,对于前端用户发来的数据进行解析.解析完之后拿到自己能用数据. 本质就是对请求体中的数据进行解析. django的解析器 post请求过来之后,django 的request. ...
- Linux系统下 Supervisor 安装搭建
在 web 应用部署到线上后,需要保证应用一直处于运行状态,在遇到程序异常.报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务. 所以,就需要一个工具,时刻监控 web 应用 ...