分类: cocos2d-x 2013-04-08 16:32 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",
);

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

(转) CCTextFieldTTF输入框的更多相关文章

  1. 传智播客C++第五期培训视频教程免费下载

    C/C++的应用领域几乎无处不在,服务器,嵌入式,物联网,移动互联网,信息安全,游戏,基本上大小通吃.C/C++市场份额高达26%,也就是每四个程序员就有一个C/C++程序员.市场需求量非常大,而且工 ...

  2. Cocos2d-x学习笔记(9)(CCTextFieldTTF使用输入框)

    1.CCTextFieldTTF创建和使用 CCTextFieldTTF::create(const char* placeholder,const char* fontName.float font ...

  3. cocos2dx注册场景 使用CCEditBox实现输入框

    我们在开始玩一个游戏时,通常要做的第一件事就是注册账号,下面就让我们来制作一个简单的注册场景,我所使用的cocos2dx版本为2.2.2 在这个场景中最主要的元素就是输入框和按钮,我从网上找了一些素材 ...

  4. cocos2d-x 聊天输入框实现

    转自:http://bbs.9ria.com/thread-216948-1-10.html 聊天输入框  (单行输入框 ,多行可自己扩展) 实现功能: 1.普通输入 2.设置输入框显示最大宽度(PT ...

  5. Cocos2d-x CCEditBox & CCTextFieldTTF

    下面简单记录一下如何Cocos2d-x中创建输入编辑框.在引擎中为我们提供了这样两个类:CCEditBox  和  CCTextFieldTTF. 一.CCEditBox ①这个类文件的位置 ②这个类 ...

  6. cocos2dx CCTextFieldTTF

    CCTextFieldTTF是一个提供文本输入的控件. 先上个简单的例子 CCSize size = __winSize; CCTextFieldTTF* textEdit = CCTextField ...

  7. cocos2d-x 输入框CCEditBox的使用

    特别说明: 这个版本的CCEditBox,设计有缺陷,背景图片的位置与输入区域的位置不同步,需要自己修改原来的代码,自己加上输入区域的坐标偏移量. void CCEditBox::setPositio ...

  8. Android点击列表后弹出输入框,所点击项自动滚动到输入框上方

    使用微信的朋友圈会发现,点击某一条评论后输入框会弹出来,然后所点击的那一项会自动地滚动到输入框上方的位置,这样如果开始所点击的评论在屏幕很下方的话,就不会被输入框遮住,虽然微信这一点在我的MX2频繁点 ...

  9. Bootstrap3系列:输入框组

    1. 基本实例 通过在文本输入框 <input> 前面.后面或是两边加上文字或按钮,实现对表单控件的扩展. .input-group包含.input-group-addon给 .form- ...

随机推荐

  1. 手机横屏竖屏css

    @media是css3中新定义的,功能非常强大,顾名思义PC是无法匹配横竖屏的,所以orientation只对移动设备起效. 1.头部声明 复制代码 代码如下: <meta name=" ...

  2. JAVA6开发WebService (一)

    转载自http://wuhongyu.iteye.com/blog/807470 WebService是SOA的一种较好的实现方式,它将应用程序的不同功能单元通过中立的契约(独立于硬件平台.操作系统和 ...

  3. HTML DOM insertBefore() 方法 使用的时候发现一个问题,记录下

    在W3C中是这样定义的   第二个参数是可先的,但是在谷歌浏览器和火狐浏览器中测试是会有bug的,第二个参数是必填的,否则会报错 感兴趣的可以测试 以下是我测试的结果: 谷歌浏览器:Uncaught ...

  4. 一封给JVM懵懂者的情书【不看错过一生幸福】

    别说你懂我 你只是在意Java你把我留在家里身和心却始终在她那里难道我只是她的附属品?错,我是我,我是JVM,没有我就没有他! 如果你想懂我或者不管你是否懂我我都在这里等你---[深入JVM内核—原理 ...

  5. mongodb 安装后 出现警告:** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000

    警告问题:当前mongodb 支持的最大文件数有256个,但是推荐至少1024个. 解决办法: 1.关闭现在打开的mongodb 终端窗口 2.重新打开终端并运行一下命令: sudo launchct ...

  6. Codeigniter 3.0 相关文档 part one

    分页配置项 http://stackoverflow.com/questions/18418900/codeigniter-pagination-config-without-repeating-wi ...

  7. MVC Pager 使用

    MVC Pager  4.0+     3.0版本使用  ,直接来点使用的.一看就明白 @Ajax.Pager(Model,pagerOptions,mvcAjaxOptions); @using W ...

  8. 使用safe-rm替代rm

    safe-rm主页: https://launchpad.net/safe-rm 一.下载safe-rm 二.解压文件,拷贝safe-rm到/usr/local/bin/目录下 三.建立软连接: #l ...

  9. Flink - Checkpoint

    Flink在流上最大的特点,就是引入全局snapshot,   CheckpointCoordinator 做snapshot的核心组件为, CheckpointCoordinator /** * T ...

  10. SUSE命令

    本人很喜欢Suse,在工作中也很喜欢总结关于Suse的经验教训,下面就这个问题来详细说说Suse常用命令.Suse常用命令的问题希望对你有所帮助.看完本文你肯定有不少收获,希望本文能教会你更多关于Su ...