1.以下是CCEditBox的相关函数和类型说明:

/*

编辑框的一些函数

setText("字符串"); //设置文本

setFontColor(color); //设置文本颜色

setPlaceHolder("文本"); //设置预设文本

getPlaceHolder(对象); //获得预设文本

setMaxLength(对象); //设置最大长度

getMaxLength(对象); //获得最大长度

setInputMode(); //设置键盘模式

setInputFlag(); //设置文本类型

setReturnType(); //设置键盘return类型

1.setInputMode

这里cocos2dx给我们提供了很多键盘的模式,我们来一一了解下。

kEditBoxInputModeAny //文本键盘(含换行)

kEditBoxInputModeEmailAddr //邮件类键盘

kEditBoxInputModeNumeric //数字符号键盘

kEditBoxInputModePhoneNumber //电话号码键盘

kEditBoxInputModeUrl //URL键盘

kEditBoxInputModeDecimal //输入键盘(含小数点)

kEditBoxInputModeSingleLine //文本键盘(不含换行)

2.setInputFlag

这里cocos2dx给我们提供了5种文本类型。

kEditBoxInputFlagPassword //密码形式

kEditBoxInputFlagSensitive //敏感数据输入

kEditBoxInputFlagInitialCapsWord //每个单词首字符大写,并有提示

kEditBoxInputFlagInitialCapsSentence //第一句首字符大写,并有提示

kEditBoxInputFlagInitialCapsAllCharacters //自动大写

3.setReturnType

这里cocos2dx给我们提供了5种键盘返回类型。

kKeyboardReturnTypeDefault //默认类型

kKeyboardReturnTypeDone //Done字样

kKeyboardReturnTypeSend //Send字样

kKeyboardReturnTypeSearch //Search字样

kKeyboardReturnTypeGo //Go字样

*/

2.以下是我的登陆界面,作为测试使用!

bool HelloWorld::init(){

if ( !CCLayerColor::initWithColor(ccc4(255, 255, 2555, 255))){

return false;

}

CCLayerColor::initWithColor(ccc4(255, 0, 0, 255));

CCSize size=CCDirector::sharedDirector()->getWinSize();

CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("market_sell.plist");

CCLabelTTF *l_username=CCLabelTTF::create("账号", "", 26);

l_username->setPosition(ccp(size.width* 0.5-200, 220));

addChild(l_username);

ed_username= createEditBox("sell_editboxBg.png", CCSizeMake(300,60), "", 20, ccc3(255, 0, 0), 5, "请输入帐号", kEditBoxInputModeSingleLine, kEditBoxInputFlagSensitive, kKeyboardReturnTypeDone);

ed_username->setText("");

ed_username->setPosition(ccp(size.width*0.5, 220));

addChild(ed_username);

ed_username->setDelegate(this);////设置代理

CCLabelTTF *l_password=CCLabelTTF::create("密码", "", 26);

l_password->setPosition(ccp(size.width* 0.5-200, 120));

addChild(l_password);

ed_password= createEditBox("sell_editboxBg.png", CCSizeMake(300,60), "", 20, ccc3(255, 0, 0), 12, "输入密码", kEditBoxInputModeSingleLine, kEditBoxInputFlagPassword, kKeyboardReturnTypeDone);

ed_password->setText("");

ed_password->setPosition(ccp(size.width* 0.5, 120));

addChild(ed_password);

ed_password->setDelegate(this);

this->setTouchEnabled(true);

return true;

}

//事件响应顺序如下:editBoxEditingDidBegin-> editBoxTextChanged-> editBoxEditingDidEnd-> editBoxReturn(注意:点击屏幕也会触发editBoxReturn)

void HelloWorld::editBoxEditingDidBegin(CCEditBox* editBox){

CCLog("**********Begin");

}

void HelloWorld::editBoxTextChanged(CCEditBox* editBox, const std::string& text){

CCLog("**********Changed");

}

void HelloWorld::editBoxEditingDidEnd(CCEditBox* editBox){

CCLog("**********ended");

}

void HelloWorld::editBoxReturn(CCEditBox* editBox){

CCLog("**********Return");

if (ed_username == editBox){

isNameNull=(strlen(ed_username->getText())==0);

if (isNameNull) {

CCMessageBox("Tip", "用户名不能为空");

}else{

ed_password->setPlaceHolder("点击输入");

ed_password->sendActionsForControlEvents(CCControlEventTouchUpInside);//需要再点击一次,才能输入

}

}else if (ed_password == editBox){

isPsdNull=(strlen(ed_password->getText())==0);

if (isPsdNull) {

CCMessageBox("Tip", "密码不能为空");

}

}

}

在代码里我使用了createEditBox这个全局方法。详细代码如下:

CCEditBox * createEditBox(const char *pFileName,CCSize size,const char* pFontName, int fontSize,const ccColor3B& color,int maxLength,const char* pPlaceHolderText,EditBoxInputMode inputMode,EditBoxInputFlag inputFlag,KeyboardReturnType returnType){

CCScale9Sprite *scale9Sprite=CCScale9Sprite::createWithSpriteFrameName(pFileName);

CCEditBox *editbox=CCEditBox::create(size, scale9Sprite);

editbox->setFontColor(color);

editbox->setFont(pFontName, fontSize);

editbox->setInputFlag(inputFlag);

editbox->setPlaceHolder(pPlaceHolderText);//当编辑框中没有任何字符的提示

editbox->setInputMode(inputMode);//设置输入模式

editbox->setReturnType(returnType);////设置键盘缩回按钮为return类型

editbox->setMaxLength(maxLength);//最大输入文本长度

return editbox;

}

CCEditBox用法的更多相关文章

  1. cocos2dx注册场景 使用CCEditBox实现输入框

    我们在开始玩一个游戏时,通常要做的第一件事就是注册账号,下面就让我们来制作一个简单的注册场景,我所使用的cocos2dx版本为2.2.2 在这个场景中最主要的元素就是输入框和按钮,我从网上找了一些素材 ...

  2. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  3. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  4. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  5. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  6. python enumerate 用法

    A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...

  7. [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...

  8. 【JavaScript】innerHTML、innerText和outerHTML的用法区别

    用法: <div id="test">   <span style="color:red">test1</span> tes ...

  9. chattr用法

    [root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...

随机推荐

  1. jQuery滚动条插件 – jquery.slimscroll.js

    jquery.slimscroll.js插件是一个支持把内容放在一个盒子里面,固定一个高度,超出的则使用滚动.jquery.slimscroll.js不仅可以定义高度.宽度,还可以定义位置.滚动条大小 ...

  2. BZOJ 1642: [Usaco2007 Nov]Milking Time 挤奶时间

    Description 贝茜是一只非常努力工作的奶牛,她总是专注于提高自己的产量.为了产更多的奶,她预计好了接下来的N (1 ≤ N ≤ 1,000,000)个小时,标记为0..N-1. Farmer ...

  3. VLAN间单臂路由访问

    实验书上的拓朴图: 注意TRUNK端口和路由器子端口设置,可以承载不同的VLAN标签. 交换机(用2691加交换模块实现的): Building configuration... Current co ...

  4. POJ_2446_Chessboard

    题目意思就是一个M*N的有洞棋盘棋盘上,用1*2的板子去覆盖没有洞的地方,要求板子不能重叠,最终能否将棋盘完整覆盖. 代码: #include<stdio.h> #include<s ...

  5. 带你了解世界最先进的手势识别技术 -- 微软,凌感,Leap...

    转载 今天为大家解释一下现有的几种主要的手势识别技术,为你揭开手势识别技术的神秘面纱. 概述 谈起手势识别技术,由简单粗略的到复杂精细的,大致可以分为三个等级:二维手型识别.二维手势识别.三维手势识别 ...

  6. Qt浅谈之三十九圆形进度条(已经有50篇了)

    http://blog.csdn.net/taiyang1987912/article/category/2314763

  7. Navigation Drawer介绍

    在2013 google IO当天,Android团的更新了Support库,新版本(V13)的Support库中新加入了几个比较重要的功能. 添加 DrawerLayout 控件,支持创建  Nav ...

  8. 队列的实现(JAVA)

    定义    队列(queue)是一种特殊的线性表,它只允许在表的前端进行删除,在表的后端进行插入. 进行插入端的称为队尾,进行删除端的称为队头.队列是先进先出原则的.队列的实现同样可以 使用两种方式来 ...

  9. 求奇数偶数的和,,利用while循环

    static void Main(string[] args)        {             while (true)                {             try   ...

  10. 非常有用的Java程序片段

    1.向文件末尾添加内容 BufferedWriter out = null; try { out = new BufferedWriter(new FileWriter(”filename”, tru ...