我们通过一个例子看看CCEditBox控件实现显示文本
首先需要在工程目录下的Resource文件夹中添加一张九位图
程序代码:
#include "TCCEditBox.h" CCScene* TCCEditBox::scene() { CCScene* scene = CCScene::create(); TCCEditBox* layer = TCCEditBox::create(); scene->addChild(layer); return scene; } bool TCCEditBox::init() { //初始化父类层 CCLayer::init(); //得到窗口的尺寸 CCSize winSize = CCDirector::sharedDirector()->getWinSize(); //创建背景图片(添加一张九位图) CCScale9Sprite* bg = CCScale9Sprite::create("green_edit.png"); //创建CCEditBox控件 //第一个参数:CCEditBox控件的大小 //第二个参数:CCEditBox控件的背景图片 CCEditBox* editBox = CCEditBox::create(CCSize(200,30), bg); //添加CCEditBox控件 addChild(editBox); //设置CCEditBox控件的位置 editBox->setPosition(ccp(winSize.width / 2, winSize.height / 2)); //设置CCEditBox控件中的文本 editBox->setPlaceHolder("Input here"); //设置文本字体和文本大小 editBox->setFont("Arial", 10); //设置字体 editBox->setFontName("Arial"); //设置CCEditBox控件中显示的文本的大小 editBox->setFontSize(20); //设置CCEditBox控件中显示的字体的颜色 editBox->setFontColor(ccc3(255, 0, 0)); //设置CCEditBox控件的颜色 editBox->setColor(ccc3(0, 255, 0)); //设置最多可以输入的字符的个数 editBox->setMaxLength(100); //设置软键盘中回车按钮的样子 editBox->setReturnType(kKeyboardReturnTypeGo); //设置输入模式 //kEditBoxInputModeAny表示可以输入任何数据 editBox->setInputMode(kEditBoxInputModeAny); return true; }
执行结果:程序中显示CCEditBox控件
单击控件后出现了一个编辑框
向编辑框中输入一段文本
单击确定后文本显示在控件上
程序移植Android上的执行结果
触摸控件后弹出软键盘
使用软键盘输入一段文本后的效果
CCEditBox的综合运用:制作一个登陆界面
首先需要在工程目录下的Resource文件夹中添加三张九位图
程序代码:
#include "TCCEditBox.h" CCScene* TCCEditBox::scene() { CCScene* scene = CCScene::create(); TCCEditBox* layer = TCCEditBox::create(); scene->addChild(layer); return scene; } bool TCCEditBox::init() { CCLayer::init(); //得到窗口的尺寸 CCSize size = CCDirector::sharedDirector()->getWinSize(); //定义CCEditBox对象指针 CCEditBox* m_pEditName; //创建CCEditBox控件 m_pEditName = CCEditBox::create(CCSizeMake(size.width-100, 60), CCScale9Sprite::create("green_edit.png")); //设置CCEditBox控件的位置 m_pEditName->setPosition(ccp(size.width/2, size.height/2 + 50)); //添加CCEditBox控件 addChild(m_pEditName); //设置CCEditBox中文本的大小 m_pEditName->setFontSize(25); //设置CCEditBox中文本的颜色 m_pEditName->setFontColor(ccRED); //设置CCEditBox中文本的内容 m_pEditName->setPlaceHolder("Name:"); //设置CCEditBox为空时,CCEditBox控件的颜色 m_pEditName->setPlaceholderFontColor(ccWHITE); //设置最多可以输入的字符数 m_pEditName->setMaxLength(8); //设置软键盘中Returen键显示的字符 //kKeyboardReturnTypeDone: 默认使用键盘return类型为“Done”字样 m_pEditName->setReturnType(kKeyboardReturnTypeDone); //定义CCEditBox对象指针 CCEditBox* m_pEditPassword; //创建CCEditBox控件 m_pEditPassword = CCEditBox::create(CCSizeMake(size.width-100, 60), CCScale9Sprite::create("orange_edit.png")); //设置CCEditBox控件的位置 m_pEditPassword->setPosition(ccp(size.width/2, size.height/2 + 50 - 80)); //添加CCEditBox控件 addChild(m_pEditPassword); //设置CCEditBox中文本的颜色 m_pEditPassword->setFontColor(ccGREEN); //设置文本的内容 m_pEditPassword->setPlaceHolder("Password:"); //设置CCEditBox控件中最多显示的字符的个数 m_pEditPassword->setMaxLength(6); //设置输入的属性 //kEditBoxInputFlagPassword:输入的是密码 m_pEditPassword->setInputFlag(kEditBoxInputFlagPassword); //设置输入编辑框的编辑类型 //kEditBoxInputModeSingleLine: 开启任何文本的输入键盘,不包括换行 m_pEditPassword->setInputMode(kEditBoxInputModeSingleLine); //定义CCEditBox对象指针 CCEditBox* m_pEditEmail; //创建CCEditBox控件 m_pEditEmail = CCEditBox::create(CCSizeMake(size.width-100, 60), CCScale9Sprite::create("yellow_edit.png")); //设置CCEditBox控件的位置 m_pEditEmail->setPosition(ccp(size.width/2, size.height/2 + 50 - 80 - 80)); //设置CCEditBox中显示的内容 m_pEditEmail->setPlaceHolder("Email:"); //设置输入编辑框的编辑类型 //kEditBoxInputModeEmailAddr:输入的是Email m_pEditEmail->setInputMode(kEditBoxInputModeEmailAddr); //添加CCEditBox控件 addChild(m_pEditEmail); return true; }
执行结果:
移植到Android上的执行结果
触摸Name弹出的软键盘
触摸Email后弹出的软键盘
输入完数据后的效果