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. socket.io

    http://www.cnblogs.com/fullhouse/archive/2011/07/18/2109936.html http://www.cnblogs.com/fullhouse/ar ...

  2. Android Studio的一些技巧和使用注意事项(持续更新)

    1.创建一个项目之后默认是没有assets目录的,可以手动在main目录下创建一个assets目录. 2.

  3. [转贴]怎样在LINQ实现 LEFT JOIN 或者RIGHT JOIN

    In this post let us see how we can handle Left Join and Right Join when using LINQ. There are no key ...

  4. hdu4435 charge-station(先建后拆+bfs)

    charge-station Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  5. 利用if else 求已发奖金总数

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

  6. 关于启动Visual Studio 2010 旗舰版的几个错误的解决方法。

    关于启动Visual Studio 2010 旗舰版的几个错误的解决方法.亲测. 重做系统之后,今天是第一次打开Visual Studio 2010 旗舰版码代码,结果遇到几个弹出的对话框,现在与大家 ...

  7. Retina

    走向Retina Web RETINA时代的前端优化 <!DOCTYPE html> <html> <head> <meta charset="ut ...

  8. 【Android 复习】:Android之ViewFlipper(二)

    通过手势移动屏幕 上面是通过屏幕上的按钮来在屏幕间切换的,这看起来多少有点不符合Android的风格,如果要是能通过手势的左右滑动来实现屏幕的切换就比较优雅了. 通过android.view.Gest ...

  9. 算法 python实现(一) 基本常识

    我算法和数据结构都不好,笨的一比. 现在的目标是熟悉常见和经典算法,看本站两个大牛的博客,在这也推荐一下,特别好,除了算法其他的技术也很不错. Vamei : http://www.cnblogs.c ...

  10. Web---创建Servlet的3种方式、简单的用户注册功能

    说明: 创建Servlet的方式,在上篇博客中,已经用了方式1(实现Servlet接口),接下来本节讲的是另外2种方式. 上篇博客地址:http://blog.csdn.net/qq_26525215 ...