您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x CCTextFieldTTF 输入框

2013-04-20 17:58 253 查看
.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:不删除
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: