zoukankan      html  css  js  c++  java
  • (转) 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
  • 相关阅读:
    hibernate常用查询语句动态生成类(包括条件和无条件查询)
    Eclipse常用插件更新下载地址列表
    IT相关网站列表
    /etc/目录下的passwd文件内容详解
    关于jfreechart创建web报表图片的流程初解
    博客地址列表
    java编码转换的详细过程 (转)
    偿债
    汽车变速器(自动挡)英文缩写
    Firefox 快捷键列表
  • 原文地址:https://www.cnblogs.com/zhaitao85/p/3628047.html
Copyright © 2011-2022 走看看