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();
}
這個是直接輸入文字的,我開始以爲是有個彈出框輸入文字。。。