• (转) 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
  • 相关阅读:
    linux:centos7开启指定端口,开放外网访问
    zookeeper 集群搭建
    单机安装zookeeper的3.4.7版本
    CentOS7下安装jdk1.8并配置环境变量,防火墙设置开关
    Redis分布式锁的正确实现方式
    MySQl5.7 忘记密码怎么办?
    Flink 之Window(窗口)
    Flink之Sink(文件、Kafka、Redis、Es、Mysql)
    Canal同步Mysql数据至Hbase
    Flink 之分流Select与Split
  • 原文地址:https://www.cnblogs.com/zhaitao85/p/3628047.html
Copyright © 2020-2023  润新知