cocos2dx 编辑框 CCEditBox
.cpp文件
bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } CCSize size = CCDirector::sharedDirector()->getWinSize(); CCScale9Sprite * sacel9SprY=CCScale9Sprite::create("green_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(5); CCLOG("Length:%i", box->getMaxLength()); //设置输入模式 box->setInputFlag(kEditBoxInputFlagSensitive); // 设置return类型 box->setReturnType(kKeyboardReturnTypeDone); box->setPosition(ccp(size.width*0.5, 220)); addChild(box); CCScale9Sprite * scale9SprG =CCScale9Sprite::create("yellow_edit.png"); CCEditBox * box1 = CCEditBox ::create(CCSizeMake(300, 60), scale9SprG); box1->setPosition(ccp(size.width* 0.5, 120)); box1->setFontColor(ccc3(255, 0, 0)); box1->setPlaceHolder("输入密码"); box1->setMaxLength(12); box1->setInputFlag(kEditBoxInputFlagPassword); box1->setReturnType(kKeyboardReturnTypeGo); addChild(box1); // 为编辑框设置背景 CCScale9Sprite * sacel9SprG = CCScale9Sprite::create("green_edit.png"); // 设置编辑框 将精灵 背景作为对象放到 编辑框里 // 同时设置 背景大小 CCEditBox* box2 = CCEditBox::create(CCSizeMake(300, 60), sacel9SprG); // 设置显示字符串 box2->setPlaceHolder("Delegate"); // 设置编辑框的位置 box2->setPosition(ccp(200,50)); // 添加 addChild(box2); //接口绑定 box2->setDelegate(this); return true; } // 开始进入编辑 void HelloWorld:: editBoxEditingDidBegin(cocos2d::extension::CCEditBox*editBox) { } //结束编辑 void HelloWorld:: editBoxEditingDidEnd(cocos2d::extension::CCEditBox* editBox) { } //编辑框文本改变 void HelloWorld:: editBoxTextChanged(cocos2d::extension::CCEditBox* editBox, const std::string& text) { } //当触发return后的回调函数 void HelloWorld:: editBoxReturn(cocos2d::extension::CCEditBox* editBox) { }
.h文件
#include "cocos-ext.h" using namespace cocos2d::extension; class HelloWorld : public cocos2d::CCLayer ,public cocos2d::extension::CCEditBoxDelegate { 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(); // a selector callback void menuCloseCallback(CCObject* pSender); // preprocessor macro for "static create()" constructor ( node() deprecated ) CREATE_FUNC(HelloWorld); //开始进入编辑 virtual void editBoxEditingDidBegin(cocos2d::extension::CCEditBox* editBox); //结束编辑 virtual void editBoxEditingDidEnd(cocos2d::extension::CCEditBox* editBox); //编辑框文本改变 virtual void editBoxTextChanged(cocos2d::extension::CCEditBox* editBox, const std::string& text); //当触发return后的回调函数 virtual void editBoxReturn(cocos2d::extension::CCEditBox* editBox); };