CCSize winSize =CCDirector::sharedDirector()->getWinSize(); CCTextFieldTTF * textfield = CCTextFieldTTF::textFieldWithPlaceHolder("點擊輸入", "Thonburi",20); textfield->setPosition(ccp(winSize.width *0.5, winSize.height*0.5)); addChild(textfield); // 綁定接口 textfield->setDelegate(this); //開啟輸入 textfield->attachWithIME(); // 關閉輸入 // textfield->detachWithIME();
bool HelloWorld:: onTextFieldAttachWithIME(CCTextFieldTTF * sender) { CCLOG("啟動輸入"); return false; // return true;(不啟動) } // 當用戶關閉虛擬鍵盤的時候回調函數 bool HelloWorld:: onTextFieldDetachWithIME(CCTextFieldTTF * sender) { CCLOG("關閉輸入"); return false; // return true;(不關閉) } // 當用戶進行輸入 虛擬鍵盤的時候回調函數 bool HelloWorld:: onTextFieldInsertText(CCTextFieldTTF * sender, const char * text, int nLen) { CCLOG("輸入字符"); return false; // return true;(不輸入) } // 當用戶進行刪除文字 虛擬鍵盤的時候回調函數 bool HelloWorld:: onTextFieldDeleteBackward(CCTextFieldTTF * sender, const char * delText, int nLen) { CCLOG("刪除字符"); return false; // return true;(不刪除) }
以上是 .cpp
.h
// 重寫CCTextFieldDelegate的回調函數 // 當用戶啟動虛擬鍵盤的時候回調函數 // 要有輸出口 virtual bool onTextFieldAttachWithIME(CCTextFieldTTF * sender); // 當用戶關閉虛擬鍵盤的時候回調函數 virtual bool onTextFieldDetachWithIME(CCTextFieldTTF * sender); // 當用戶進行輸入 虛擬鍵盤的時候回調函數 virtual bool onTextFieldInsertText(CCTextFieldTTF * sender, const char * text, int nLen); // 當用戶進行刪除文字 虛擬鍵盤的時候回調函數 virtual bool onTextFieldDeleteBackward(CCTextFieldTTF * sender, const char * delText, int nLen);