1. 将需要管理的精灵继承CCIMEDelegate。
2. 实现下面四个虚函数:
virtual void keyboardWillShow(cocos2d::CCIMEKeyboardNotificationInfo& info);
virtual void keyboardDidShow(cocos2d::CCIMEKeyboardNotificationInfo& info);
virtual void keyboardWillHide(cocos2d::CCIMEKeyboardNotificationInfo& info);
virtual void keyboardDidHide(cocos2d::CCIMEKeyboardNotificationInfo& info);
例如我自己的函数实现如下:
void MyInputBox::keyboardWillShow(cocos2d::CCIMEKeyboardNotificationInfo& info)
{
CCRect bgRect = m_bgSprite->boundingBox();
bgRect.origin = convertToWorldSpace(bgRect.origin);
if (bgRect.origin.y < info.end.origin.y + info.end.size.height)
{
CCPoint destPos = getPosition();
destPos.y += info.end.origin.y + info.end.size.height - bgRect.origin.y + 10;
CCMoveTo* moveTo = CCMoveTo::actionWithDuration(info.duration, destPos);
runAction(moveTo);
}
}
void MyInputBox::keyboardDidShow(cocos2d::CCIMEKeyboardNotificationInfo& info)
{
}
void MyInputBox::keyboardWillHide(cocos2d::CCIMEKeyboardNotificationInfo& info)
{
CCPoint destPos = ccp(0.0f, 0.0f);
CCMoveTo* moveTo = CCMoveTo::actionWithDuration(info.duration, destPos);
runAction(moveTo);
}
void MyInputBox::keyboardDidHide(cocos2d::CCIMEKeyboardNotificationInfo& info)
{
}