您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx CCTextFieldTTF

2014-05-01 20:43 363 查看
CCTextFieldTTF是一个提供文本输入的控件。

先上个简单的例子

CCSize size = __winSize;
CCTextFieldTTF* textEdit = CCTextFieldTTF::textFieldWithPlaceHolder("input here", FONT_NAME, FONT_SIZE);
addChild(textEdit);
textEdit->setPosition(ccp(size.width/2, size.height/2));


以上代码只是将控件放到界面上,但是鼠标点点,发现没反应的,没有虚拟键盘出来。那我们就是要做一个功能,当鼠标或者触摸该控件时,弹出虚拟键盘来。

#define FONT_NAME                       "Thonburi"
#define FONT_SIZE 36
// on "init" you need to initialize your instance
bool TextFieldTTF02::init()
{
//////////////////////////////
// 1. super init first
if ( !MenuLayer::init() )
{
return false;
}

CCSize size = __winSize; CCTextFieldTTF* textEdit = CCTextFieldTTF::textFieldWithPlaceHolder("input here", FONT_NAME, FONT_SIZE); addChild(textEdit); textEdit->setPosition(ccp(size.width/2, size.height/2));

setTouchEnabled(true);
setTouchMode(kCCTouchesOneByOne);

_textEdit = textEdit;

return true;
}

bool TextFieldTTF02::ccTouchBegan(CCTouch* touch, CCEvent* ev)
{
_clickPoint = touch->getLocation();
return true;
}

void TextFieldTTF02::ccTouchEnded(CCTouch* touch, CCEvent* ev)
{
CCPoint ptClicked = touch->getLocation();
CCPoint pt = ccpSub(ptClicked, _clickPoint);
if(abs(pt.x) < 5 && abs(pt.y) < 5)
{
CCRect rc = _textEdit->boundingBox();
if(rc.containsPoint(ptClicked))
{
_textEdit->attachWithIME();
}
else
{
CCLog("%s", _textEdit->getString());
}
}
}
为了实现点击编辑框,弹出虚拟键盘的功能,我们给层使能了触摸功能,在触摸处理里,判断是否点击了输入框,如果是,则弹出虚拟键盘。

如果你是在windows下写这个程序,键盘也许弹不出来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: