(转) CCTextFieldTTF输入框

CCTextFieldTTF输入框

分类: cocos2d-x 2964人阅读 评论(1) 收藏 举报

新建工程,testInput

修改HelloWorldScene.h

#ifndef __HELLOWORLD_SCENE_H__

#define __HELLOWORLD_SCENE_H__


#include "cocos2d.h"

usingnamespace cocos2d;

class HelloWorld :publiccocos2d::CCLayer,publiccocos2d::CCTextFieldDelegate

{

public:

    // Method 'init' in cocos2d-x returns bool, instead of 'id' in cocos2d-iphone (an object pointer)

   virtual bool init();


    // there's no 'id' in cpp, so we recommend to return the class instance pointer

   static cocos2d::CCScene* scene();

    

    //重写CCTextFieldDelegate的回调函数

    

    //当用户启动虚拟键盘时的回调函数

   virtual bool onTextFieldAttachWithIME(CCTextFieldTTF *pSender);

    //当用户关闭虚拟键盘时的回调函数

   virtual bool onTextFieldDetachWithIME(CCTextFieldTTF *pSender);

    //当用户进行输入时的回调函数

   virtual bool onTextFieldInsertText(CCTextFieldTTF *pSender,constchar *text,int nLen);

    //当用户删除文字时的回调函数

   virtual bool onTextFieldDeleteBackward(CCTextFieldTTF *pSender,constchar *delText,int nLen);

    

    


    // preprocessor macro for "static create()" constructor ( node() deprecated )

    CREATE_FUNC(HelloWorld);

};


#endif // __HELLOWORLD_SCENE_H__

修改HelloWorldScene.cpp

#include "HelloWorldScene.h"

#include "SimpleAudioEngine.h"


usingnamespace cocos2d;

usingnamespace CocosDenshion;


CCScene* HelloWorld::scene()

{

    // 'scene' is an autorelease object

   CCScene *scene = CCScene::create();

    

    // 'layer' is an autorelease object

    HelloWorld *layer =HelloWorld::create();


    // add layer as a child to scene

    scene->addChild(layer);


    // return the scene

   return scene;

}


// on "init" you need to initialize your instance

boolHelloWorld::init()

{

    //////////////////////////////

    // 1. super init first

   if ( !CCLayer::init() )

    {

        return false;

    }


    /////////////////////////////

    // 2. add a menu item with "X" image, which is clicked to quit the program

    //    you may modify it.


    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("关闭输入");

    return false;

    //return true:不关闭

}

//当用户进行输入时的回调函数

bool HelloWorld::onTextFieldInsertText(CCTextFieldTTF *pSender,constchar *text,int nLen)

{

    CCLOG("输入字符...");

    return false;

    //return true:不会输入进字符


}

//当用户删除文字时的回调函数

bool HelloWorld::onTextFieldDeleteBackward(CCTextFieldTTF *pSender,constchar *delText,int nLen)

{

    CCLOG("删除字符");

    return false;

    //return true:不删除

}

源码地址:http://download.csdn.net/detail/cloud95/5234145
posted @ 2014-03-27 12:30  Freedom_Call  阅读(189)  评论(0编辑  收藏  举报