——1、我创建cclayer的子类:
class LogoInLayer : public cocos2d::CCLayer
{
public:
void onEnter();
void onExit();
void registerWithTouchDispatcher();
bool ccTouchBegan(CCTouch* pTouch, CCEvent* event);
void ccTouchEnded(CCTouch* pTouch, CCEvent* event);
void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
void keyMenuClicked();
void keyBackClicked();
};
——2、在onEnter方法中,我创建了一个CCTextFieldTTF指针并设置:
CCTextFieldTTF * l = CCTextFieldTTF::textFieldWithPlaceHolder("12345567", "", 25);
l->setPosition(ccp(200,200));
addChild(l, 5,1234);
this->setIsTouchEnabled(true);
this->setIsKeypadEnabled(true);
——3、同时重写 registerWithTouchDispatcher() 方法:
void LogoInLayer::registerWithTouchDispatcher()
{
CCTouchDispatcher::sharedDispatcher()
->addTargetedDelegate(this, kCCMenuTouchPriority + 2, true);
}
——4、然后我在CCTouchBegan中写代码:
CCTextFieldTTF* l = (CCTextFieldTTF*)this->getChildByTag(1234);
l->attachWithIME();
我找不到任何问题,但运行时甚至无法在键盘上打开键盘。