原文链接(http://blog.csdn.net/song_hui_xiang/article/details/8828700)
.h文件
- #ifndef __HELLOWORLD_SCENE_H__
- #define __HELLOWORLD_SCENE_H__
- #include "cocos2d.h"
- using namespace cocos2d;
- //需要实现 CCTextFieldDelegate 接口
- class HelloWorld : public cocos2d::CCLayer, public cocos2d::CCTextFieldDelegate
- {
- public:
- virtual bool init();
- static cocos2d::CCScene* scene();
- CREATE_FUNC(HelloWorld);
- //重写CCTextFieldDelegate的回调函数
- //当用户启动虚拟键盘时的回调函数
- virtual bool onTextFieldAttachWithIME(CCTextFieldTTF * pSender);
- //当用户关闭虚拟键盘时的回调函数
- virtual bool onTextFieldDetachWithIME(CCTextFieldTTF * pSender);
- //当用户进行输入时的回调函数
- virtual bool onTextFieldInsertText(CCTextFieldTTF * pSender, const char * text, int nLen);
- //当用户删除文字时的回调函数
- virtual bool onTextFieldDeleteBackward(CCTextFieldTTF * pSender, const char * delText, int nLen);
- };
- #endif // __HELLOWORLD_SCENE_H__
.cpp文件
- #include "HelloWorldScene.h"
- #include "SimpleAudioEngine.h"
- using namespace cocos2d;
- using namespace CocosDenshion;
- CCScene* HelloWorld::scene()
- {
- CCScene *scene = CCScene::create();
- HelloWorld *layer = HelloWorld::create();
- scene->addChild(layer);
- return scene;
- }
- bool HelloWorld::init()
- {
- if ( !CCLayer::init() )
- {
- return false;
- }
- CCSize size = CCDirector::sharedDirector()->getWinSize();
- CCTextFieldTTF* textField = CCTextFieldTTF::textFieldWithPlaceHolder("点击输入...", "Helvetica", 24);
- textField->setPosition(ccp(size.width*0.5,size.height*0.7));
- addChild(textField);
- //绑定接口
- textField->setDelegate(this);
- //开启输入
- textField->attachWithIME();
- //关闭输入
- // textField->detachWithIME();
- return true;
- }
- bool HelloWorld::onTextFieldAttachWithIME(CCTextFieldTTF * pSender){
- CCLOG("启动输入");
- return false;
- //return true:不启动
- }
- bool HelloWorld::onTextFieldDetachWithIME(CCTextFieldTTF * pSender){
- CCLOG("关闭输入");
- //得到输入内容
- const char* inputStr = pSender->getString();
- return false;
- //return true:不关闭
- }
- bool HelloWorld::onTextFieldInsertText(CCTextFieldTTF * pSender, const char * text, int nLen){
- CCLOG("输入字符...");
- return false;
- //return true:不会输入进字符
- }
- bool HelloWorld::onTextFieldDeleteBackward(CCTextFieldTTF * pSender, const char * delText, int nLen){
- CCLOG("删除字符");
- return false;
- //return true:不删除
- }