上一篇文章是用到CCTextFieldTTF来创建的一个输入框,现在我们用CCEditBox来创建一个输入框,它是在2.0版本后加入的,好了,看例子吧:
CCEditBox *m_InputBox;
定义一个editbox;
void MyEditBoxLayer::initLayer() {
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCScale9Sprite *s9sprite = CCScale9Sprite::create("face.jpg");
m_InputBox = CCEditBox::create(CCSizeMake(100, 50),
s9sprite);
m_InputBox->setAnchorPoint(ccp(0.5f, 0.5f));
m_InputBox->setPosition(ccp(100, 200));
this->addChild(m_InputBox, 1);
m_InputBox->setColor(ccc3(255, 0, 0));
m_InputBox->setText("so I Create an edit box");
m_InputBox->setMaxLength(10); //这个在PC上没有作用的。
m_InputBox->setOpacity(200);
m_InputBox->setFontSize(10);
//m_InputBox->setInputFlag(kEditBoxInputFlagPassword);
m_InputBox->setInputMode(kEditBoxInputModeEmailAddr);
}
kEditBoxInputFlagPassword, kEditBoxInputModeEmailAddr详解:
/**
* \brief The EditBoxInputMode defines the type of text that the user is allowed
* to enter.
*/
enum EditBoxInputMode
{
/**
* The user is allowed to enter any text, including line breaks.
*/
kEditBoxInputModeAny = 0,
/**
* The user is allowed to enter an e-mail address.
*/
kEditBoxInputModeEmailAddr,
/**
* The user is allowed to enter an integer value.
*/
kEditBoxInputModeNumeric,
/**
* The user is allowed to enter a phone number.
*/
kEditBoxInputModePhoneNumber,
/**
* The user is allowed to enter a URL.
*/
kEditBoxInputModeUrl,
/**
* The user is allowed to enter a real number value.
* This extends kEditBoxInputModeNumeric by allowing a decimal point.
*/
kEditBoxInputModeDecimal,
/**
* The user is allowed to enter any text, except for line breaks.
*/
kEditBoxInputModeSingleLine
};
/**
* \brief The EditBoxInputFlag defines how the input text is displayed/formatted.
*/
enum EditBoxInputFlag
{
/**
* Indicates that the text entered is confidential data that should be
* obscured whenever possible. This implies EDIT_BOX_INPUT_FLAG_SENSITIVE.
*/
kEditBoxInputFlagPassword = 0,
/**
* Indicates that the text entered is sensitive data that the
* implementation must never store into a dictionary or table for use
* in predictive, auto-completing, or other accelerated input schemes.
* A credit card number is an example of sensitive data.
*/
kEditBoxInputFlagSensitive,
/**
* This flag is a hint to the implementation that during text editing,
* the initial letter of each word should be capitalized.
*/
kEditBoxInputFlagInitialCapsWord,
/**
* This flag is a hint to the implementation that during text editing,
* the initial letter of each sentence should be capitalized.
*/
kEditBoxInputFlagInitialCapsSentence,
/**
* Capitalize all characters automatically.
*/
kEditBoxInputFlagInitialCapsAllCharacters
};