头文件要包含:
#include "cocos-ext.h"USING_NS_CC_EXT;
类要继承于
class HelloWorld : public cocos2d::Layer,public EditBoxDelegate
这里有个问题,我这样写之后会报错,提示:EditBoxDeletgate不是类名或者结构名,这个纠结了很久,后来在网上看到别人用scoreVIEw的时候也会出现这样的问题,有人说包含目录:$(EngineRoot)就行了,我试了一下果然成功~
在类里重载编辑框的函数
//---------------------------------添加编辑框 virtual voID editBoxEditingDIDBegin(cocos2d::extension::EditBox* editBox); virtual voID editBoxEditingDIDEnd(cocos2d::extension::EditBox* editBox); virtual voID editBoxTextChanged(cocos2d::extension::EditBox* editBox,const std::string &text); virtual voID editBoxReturn(cocos2d::extension::EditBox *editBox);
根据函数名我们可以知道这些函数的作用
在init函数里创建编辑框
//---------------------------------添加账号框 auto pEditBox_name = EditBox::create(CCSizeMake(250,50),Scale9Sprite::create("button.png")); pEditBox_name->setposition(ccp(visibleSize.wIDth/2,visibleSize.height*3/4)); pEditBox_name->setFontcolor(color3B(0,0));//设置字体颜色 pEditBox_name->setPlaceHolder("name:");//设置预置文本 pEditBox_name->setMaxLength(8);//设置最大长度 pEditBox_name->setinputMode(cocos2d::ui::EditBox::inputMode::SINGLE_liNE);//可以输入任何,但是不包括换行 pEditBox_name->setinputFlag(cocos2d::ui::EditBox::inputFlag::INITIAL_CAPS_WORD);//设置输入标志位 pEditBox_name->setReturnType(cocos2d::ui::EditBox::KeyboardReturnType::DONE);//设置返回类型 pEditBox_name->setDelegate(this);//当前类继承CCEditBoxDelegate类 pEditBox_name->setTag(101); this->addChild(pEditBox_name); //---------------------------------添加密码框 auto pEditBox_password = EditBox::create(CCSizeMake(250,Scale9Sprite::create("button.png")); pEditBox_password->setposition(ccp(visibleSize.wIDth/2,visibleSize.height*2/4)); pEditBox_password->setFontcolor(color3B(0,0)); pEditBox_password->setPlaceHolder("Password:"); pEditBox_password->setMaxLength(6); pEditBox_password->setinputMode(cocos2d::ui::EditBox::inputMode::NUMERIC); pEditBox_password->setinputFlag(cocos2d::ui::EditBox::inputFlag::PASSWORD); pEditBox_password->setReturnType(cocos2d::ui::EditBox::KeyboardReturnType::DONE); pEditBox_password->setDelegate(this); pEditBox_password->setTag(102); this->addChild(pEditBox_password);
然后重写编辑框的功能函数
voID HelloWorld::editBoxEditingDIDBegin(EditBox *editBox) { cclOG("start edit"); } voID HelloWorld::editBoxEditingDIDEnd(EditBox *editBox) { cclOG("end edit"); } voID HelloWorld::editBoxReturn(EditBox *editBox) { cclOG("editBox return"); } voID HelloWorld::editBoxTextChanged(EditBox *editBox,const std::string &text) { auto editBox = (EditBox*)editBox; switch(editBox->getTag()) { case 101: cclOG("EditBox_name changed"); m_name=text; break; case 102: cclOG("EditBox_password changed"); m_password=text; break; default: break; }}
好了,这样编辑框就出来了
之后说说如何做个登陆的效果
总结以上是内存溢出为你收集整理的cocos2dx-3.3 使用编辑框(EditBox)全部内容,希望文章能够帮你解决cocos2dx-3.3 使用编辑框(EditBox)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)