本文使用的是cocos2d-x 2.1.6版本,cocosstudio1.6.0.0版本。其调用的相关代码如下:
bool HelloWorld::init(){ // ... UILayout* pWidget = dynamic_cast(GUIReader::shareReader()->widgetFromJsonFile("ui/UILogin.json")); // 获取控件 UITextField* pLoginAccount = dynamic_cast (m_pUILayer->getWidgetByName("TextField_Account")); // 注册事件 pLoginAccount->addEventListenerTextField(this, textfieldeventselector(HelloWorld::textFieldEvent));}void HelloWorld::textFieldEvent(CCObject *pSender, TextFiledEventType type){ switch (type) { case TEXTFIELD_EVENT_ATTACH_WITH_IME: Cbreak; case TEXTFIELD_EVENT_DETACH_WITH_IME: break; case TEXTFIELD_EVENT_INSERT_TEXT: break; case TEXTFIELD_EVENT_DELETE_BACKWARD: break; default: break; }}
不过接下来要说的是一些其他的接口,比如:
class CC_EX_DLL TextField : public Widget{ public: // 设置TextField的触摸范围 void setTouchSize(const CCSize &size); // 获取TextField的触摸范围 CCSize getTouchSize(); // 设置是否打开触摸 void setTouchAreaEnabled(bool enable); // 设置输入框文本 void setText(const std::string& text); // 设置默认显示文本 void setPlaceHolder(const std::string& value); // 获取默认显示文本 const char* getPlaceHolder(); // 设置字体大小 void setFontSize(int size); // 获取字体大小 int getFontSize(); // 设置字体格式 void setFontName(const std::string& name); // 获取字体格式 const char* getFontName(); // 获取输入框文本 const char* getStringValue(); // 设置是否限制最大输入字数,true表示限制 void setMaxLengthEnabled(bool enable); // 判断是否限制最大输入字数 bool isMaxLengthEnabled(); // 设置输入字数长度 void setMaxLength(int length); // 获取输入字数长度 int getMaxLength(); // 设置文本格式是否为密码格式,true表示为密码格式 void setPasswordEnabled(bool enable); // 判断文本格式是否为密码格式 bool isPasswordEnabled(); // 设置密码格式的文本显示,比如:styleText = "*" void setPasswordStyleText(const char* styleText); // 获取密码格式文本 const char* getPasswordStyleText(); // 回调接口 void addEventListenerTextField(CCObject* target, SEL_TextFieldEvent selecor);};
假如,我想设定密码文本可显示,直接调用SetPasswordEnablef(false)即可。如果想把密码文本由"*"改为“#”直接调用接口SetPasswordStyleText("#")即可。