cocosd-x教程4 CCTextFieldTTF的使用

本文介绍了一个使用Cocos2d-x创建的HelloWorld场景案例,详细讲解了如何实现文本框的输入和编辑功能,包括启动、关闭虚拟键盘,以及插入和删除文本的回调函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HelloWorldScene.h

#ifndef __HELLOWORLD_SCENE_H__

#define __HELLOWORLD_SCENE_H__


#include "cocos2d.h"

using namespace cocos2d;

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__



HelloWorldScene.cpp


#include "HelloWorldScene.h"

#include "SimpleAudioEngine.h"


using namespace cocos2d;

using namespace CocosDenshion;

using namespace std;


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

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:不删除



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值