HelloWorldScene.h文件
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
#include "SimpleAudioEngine.h"
class HelloWorld : public cocos2d::CCLayer,public cocos2d::CCTextFieldDelegate
{
public:
// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
virtual bool init();
// there's no 'id' in cpp, so we recommand to return the exactly class pointer
static cocos2d::CCScene* scene();
// a selector callback
void menuCloseCallback(CCObject* pSender);
/*重写CCTextFieldDelegate的回调函数*/
/*当用户启动虚拟键盘时的回调函数*/
virtual bool onTextFieldAttachWithTME(CCObject* pSender);
/*当用户关闭虚拟键盘时的回调函数*/
virtual bool onTextFieldDetachWithIME(CCObject* pSender);
/*当用户进行输入时的回调函数*/
virtual bool onTextFieldInsertText(CCObject* pSender,const char* text,int nLen);
/*当用户删除文字时的回调函数*/
virtual bool onTextFieldDeleteBackward(CCObject* pSender,const char* delText,int nLen);
// implement the "static node()" method manually
CREATE_FUNC(HelloWorld);
};
#endif // __HELLOWORLD_SCENE_H__
HelloWorld.cpp文件
#include "HelloWorldScene.h"
using namespace cocos2d;
CCScene* HelloWorld::scene()
{
CCScene * scene = NULL;
do
{
// 'scene' is an autorelease object
scene = CCScene::create();
CC_BREAK_IF(! scene);
// 'layer' is an autorelease object
HelloWorld *layer = HelloWorld::create();
CC_BREAK_IF(! layer);
// add layer as a child to scene
scene->addChild(layer);
} while (0);
// return the scene
return scene;
}
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
bool bRet = false;
do
{
//
// super init first
//
CC_BREAK_IF(! CCLayer::init());
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCTextFieldTTF* pTextField = CCTextFieldTTF::textFieldWithPlaceHolder("input...","Helvetica",24);
pTextField->setPosition(ccp(size.width*0.5,size.height*0.7));
this->addChild(pTextField);
//绑定接口
pTextField->setDelegate(this);
//开启输入
pTextField->attachWithIME();
//关闭输入
// pTextField->detachWithIME();
bRet = true;
} while (0);
return bRet;
}
bool HelloWorld::onTextFieldAttachWithTME(CCObject* pSender)
{
CCLOG("启动输入");
return false;
//return true; //不启动
}
bool HelloWorld::onTextFieldDetachWithIME(CCObject* pSender)
{
CCLOG("关闭输入");
return false;
//return true; //不关闭
}
bool HelloWorld::onTextFieldInsertText(CCObject* pSender,const char* text,int nLen)
{
CCLOG("输入字符...");
return false;
//return true; //不输入
}
bool HelloWorld::onTextFieldDeleteBackward(CCObject* pSender,const char* delText,int nLend)
{
CCLOG("删除字符");
return false;
//return true; //不删除
}
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
// "close" menu item clicked
CCDirector::sharedDirector()->end();
}
这个是直接输入文字的,我开始以为是有个弹出框输入文字。。。