(转) CCEditBox 编辑框

CCEditBox 编辑框

原文: http://blog.csdn.net/cloud95/article/details/8773470

分类: cocos2d-x 4356人阅读 评论(3) 收藏 举报

新建工程,名为testEdit.

修改HelloWorld.h

#ifndef __HELLOWORLD_SCENE_H__

#define __HELLOWORLD_SCENE_H__


#include "cocos2d.h"

#include "cocos-ext.h"

usingnamespacecocos2d::extension;

class HelloWorld : public cocos2d::CCLayer,publicCCEditBoxDelegate

{

public:

    // Method 'init' in cocos2d-x returns bool, instead of 'id' in cocos2d-iphone (an object pointer)

    virtual bool init();


    // there's no 'id' in cpp, so we recommend to return the class instance pointer

    static cocos2d::CCScene* scene();

    CREATE_FUNC(HelloWorld);

    

    virtual void editBoxEditingDidBegin(CCEditBox *editBox);

    virtual void editBoxEditingDidEnd(CCEditBox *editBox);

    virtual void editBoxTextChanged(CCEditBox *editBox,const std::string &text);

    virtual void editBoxReturn(CCEditBox *editBox);

    

};


#endif // __HELLOWORLD_SCENE_H__

修改HelloWorld.cpp

#include "HelloWorldScene.h"

#include "SimpleAudioEngine.h"


usingnamespace cocos2d;

usingnamespace CocosDenshion;

#define testflag 2

CCScene* HelloWorld::scene()

{

    // 'scene' is an autorelease object

    CCScene *scene = CCScene::create();

    

    // 'layer' is an autorelease object

    HelloWorld *layer = HelloWorld::create();


    // add layer as a child to scene

    scene->addChild(layer);


    // return the scene

    return scene;

}


// on "init" you need to initialize your instance

boolHelloWorld::init()

{

    //////////////////////////////

    // 1. super init first

    if ( !CCLayer::init() )

    {

        return false;

    }

    switch (testflag) {

        case 1:

        {

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

            CCScale9Sprite *sacel9SprY= CCScale9Sprite::create("yellow_edit.png");

            CCEditBox *box=CCEditBox::create(CCSizeMake(300, 60), sacel9SprY);

            

            //设置编辑框内的文字

            box->setText("");

            //获取编辑框内的文字

            CCLOG("Text:%s",box->getText());

            

            //设置文本的颜色

            box->setFontColor(ccc3(255, 0, 0));

            

            //当编辑框中没有任何字符的提示

            box->setPlaceHolder("请输入帐号");

            CCLOG("PlaceHolder:%s",box->getPlaceHolder());

            

            //最大输入文本长度

            box->setMaxLength(10);

            CCLOG("Length:%i",box->getMaxLength());

            

            //设置输入模式

            box->setInputMode(kEditBoxInputModeAny);

            

            /**

             //      kEditBoxInputModeAny:         开启任何文本的输入键盘,包括换行

             //      kEditBoxInputModeEmailAddr:   开启 邮件地址 输入类型键盘

             //      kEditBoxInputModeNumeric:     开启 数字符号 输入类型键盘

             //      kEditBoxInputModePhoneNumber: 开启 电话号码 输入类型键盘

             //      kEditBoxInputModeUrl:         开启 URL 输入类型键盘

             //      kEditBoxInputModeDecimal:     开启 数字 输入类型键盘,允许小数点

             //      kEditBoxInputModeSingleLine:  开启任何文本的输入键盘,不包括换行

             //

             */

            

            //设置输入类型

            box->setInputFlag(kEditBoxInputFlagSensitive);

            /**

             //      kEditBoxInputFlagPassword:  密码形式输入

             //      kEditBoxInputFlagSensitive: 敏感数据输入、存储输入方案且预测自动完成

             //      kEditBoxInputFlagInitialCapsWord: 每个单词首字母大写,并且伴有提示

             //      kEditBoxInputFlagInitialCapsSentence: 第一句首字母大写,并且伴有提示

             //      kEditBoxInputFlagInitialCapsAllCharacters: 所有字符自动大写

             //     */

            

            

            

            

            //设置返回类型

            box->setReturnType(kKeyboardReturnTypeDone);

            /**

             //      kKeyboardReturnTypeDefault:  默认使用键盘return 类型

             //      kKeyboardReturnTypeDone:     默认使用键盘return类型为“Done”字样

             //      kKeyboardReturnTypeSend:     默认使用键盘return类型为“Send”字样

             //      kKeyboardReturnTypeSearch:   默认使用键盘return类型为“Search”字样

             //      kKeyboardReturnTypeGo:       默认使用键盘return类型为“Go”字样

             //      */

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

            addChild(box);

            

            CCScale9Sprite *sacel9SprG=CCScale9Sprite::create("green_edit.png");

            CCEditBox *box2=CCEditBox::create(CCSizeMake(300, 60), sacel9SprG);

            box2->setInputFlag(kEditBoxInputFlagPassword);

            box2->setReturnType(kKeyboardReturnTypeGo);

            box2->setMaxLength(12);

            box2->setPlaceHolder("请输入密码");

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

            addChild(box2);


        }

            break;

            

        case 2:

        {

            CCScale9Sprite *sacel9SprG=CCScale9Sprite::create("green_edit.png");

            CCEditBox *box2=CCEditBox::create(CCSizeMake(300, 60), sacel9SprG);

            box2->setPlaceHolder("Delegate");

            box2->setPosition(ccp(220,120));            

            addChild(box2);

            box2->setDelegate(this);


        }

            break;

    }

        return true;

}



void HelloWorld::editBoxEditingDidBegin(CCEditBox *editBox)

{

    CCLOG("start edit");

}

void HelloWorld::editBoxEditingDidEnd(CCEditBox *editBox) 

{

     CCLOG("end edit");

}

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

{

     CCLOG("textchanged");

}

void HelloWorld::editBoxReturn(CCEditBox *editBox)

{

     CCLOG("editboxreturn");

}

 


posted @ 2014-03-27 12:29  Freedom_Call  阅读(223)  评论(0编辑  收藏  举报