您的位置:首页 > 其它

CCTextFieldTTF输入框

2013-04-08 16:32 239 查看
新建工程,testInput

修改HelloWorldScene.h

#ifndef __HELLOWORLD_SCENE_H__

#define __HELLOWORLD_SCENE_H__

#include "cocos2d.h"

using namespace
cocos2d;

class HelloWorld :public
cocos2d::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"

using namespace
cocos2d;

using namespace
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

bool HelloWorld::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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: