Cocos3.0 Editbox输入框的运用

很多朋友会发现,在使用cocostudio也就是UI编辑器的时候,软件中明明有个叫TextField输入框的控件,但是却使用不了,而且还不支持按键响应,具体什么情况也没必要去深究,因为路不止一条,我们没必要在一棵树上吊死,我们可以采用另外一种方法来实现提供用户输入这个功能

具体实现:

Game.h

class Game:public Layer,public EditBoxDelegate

{

pubilc:

static Scene *creatScene();
virtual bool init();

virtual void editBoxEditingDidBegin(EditBox* editBox);
virtual void editBoxEditingDidEnd(EditBox* editBox);
virtual void editBoxTextChanged(EditBox* editBox,const std::string &text);
virtual void editBoxReturn(EditBox *editBox);

CREATE_FUNC(Game);

privite:

EditBox *Box;

}

Game.cpp

bool Game::init()
{

if (!Layer::init())
{


return false;
}

Scale9Sprite* sacel9Spr = Scale9Sprite::create("Game.png"); //创建背景图片(添加一张九位图)
Box = EditBox::create(CCSizeMake(200,80),sacel9Spr); //创建CCEditBox控件

//第一个参数:EditBox控件的大小 //第二个参数:EditBox控件的背景图片

//设置文本字体和文本大小

Box->setFont("Arial",10);
//设置字体

Box->setFontName("Arial");

//设置控件位置

Box->setPosition(ccp(300,300));

//设置控件中显示的文本

Box->setPlaceHolder("Enter Name");

//设置Box控件中显示的字体的颜色,0为白色

Box->setFontColor(ccc3(0,0));

//设置软键盘中回车按钮的样子

Box->setReturnType(EditBox::KeyboardReturnType::GO);

//设置输入模式

//Any表示可以输入任何数据

Box->setInputMode(EditBox::InputMode::ANY);

//当前类继承EditBoxDelegate类

Box->setDelegate(this);

this->addChild(Box);

return ture;

}

//四个editBox的响应。
void Game::editBoxEditingDidBegin(EditBox* editBox)
{

log("editBox %p DidBegin.",editBox);

}


void Game::editBoxEditingDidEnd(EditBox* editBox)
{

log("editBox %p DidEnd.",editBox);

}


void Game::editBoxTextChanged(EditBox* editBox,const std::string &text)
{

log("editBox %p TextChanged,text: %s",editBox,text.c_str());

}


void Game::editBoxReturn(EditBox *editBox)
{

log("edit return");

}

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...