最近在移植android的时候,又发现一个头疼的问题。以前在cocos2dx2.4左右版本,写的输入框,如图
,以前使用正常,输入一次后,再次点击输入,弹出的输入框,能显示之前输入过的文字,如图 ,现在用3.2版本后,里面的代码,都没改变,只是对应版本的语法纠正一下而已,再次点击输入,以前不能显示之前输入过的文字勒,如图 找了一下,没有找到解决办法,希望各位大神能指点一下小弟。这里,简单角度一下自己输入框的实现,就是一个自己的普通 类 ,继承勒 cocos2d::IMEDelegate
class XYInputFrame : public Sprite ,public cocos2d::IMEDelegate
然后,在一些对应delegate方法中呼出系统键盘,监听输入文字,然后自己通过自己的Label来记录显示而已。
bool XYInputFrame::attachWithIME()
{
bool bRet = CCIMEDelegate::attachWithIME();
if (bRet)
{
// open keyboard
CCEGLView * pGlView = CCDirector::sharedDirector()->getOpenGLView();
if (pGlView)
{
status = 1;
pGlView->setIMEKeyboardState(true);
_cursor->setVisible(true);
}
}
return bRet;
}
bool XYInputFrame::detachWithIME()
{
bool bRet = CCIMEDelegate::detachWithIME();
if (bRet)
{
// close keyboard
CCEGLView * pGlView = CCDirector::sharedDirector()->getOpenGLView();
if (pGlView)
{
pGlView->setIMEKeyboardState(false);
_cursor->setVisible(false);
status = 0;
}
}
return bRet;
}


