版主进来,bug呀

版本2.2.2,控件uitextfiled
一个需要输入密码的uitextfiled,我需要做判断就在TEXTFIELD_EVENT_INSERT_TEXT判断输入是不是中文,如果是中文就不能输入,否则可以输入,如果设置属性setPasswordEnabled(false)判断没问题,设置setPasswordEnabled(true),TEXTFIELD_EVENT_INSERT_TEXT里面代码走了,但是效果没有,依然显示的是****,显示密码后是中文,何解?发现setPasswordEnabled(true)后再去settext就没用了,为什么?

版主,图片,代码来啦,帮忙解决哈~

显示密码的代码
isShow = true;
char* passwordStr = (char*)modify_password->getStringValue();
modify_password->setPasswordEnabled(false);
modify_password->setText(passwordStr);
modify_showpsdBtn->setVisible(false);
modify_showpsdBtn->setTouchEnabled(false);

判断中文代码
case TEXTFIELD_EVENT_INSERT_TEXT:
{

//modify_password
string modStr = modify_password->getStringValue();
int modSize = modStr.size();
if (modSize>0) {
char allModStr = {0};
sprintf(allModStr, “%s”, modStr.c_str()); //判断有木有中文,并返回中文的起始位置
int tagMod = 0;
bool isChineseStr = CheckIsChinese(allModStr, tagMod);
if (isChineseStr) {
if (tagMod == 0) { modify_password->setText(""); }
else { modify_password->setText(modStr.substr(0, tagMod)); }
if (!isShow) { modify_password->setPasswordEnabled(true); } break; } //截取字符串最后一个字符,判断有效性
char chModTemp = {0};
string lastModStr = modStr.substr(modSize-1);
sprintf(chModTemp, “%s”, lastModStr.c_str());
if (((chModTemp>=48) && (chModTemp<=57)) || ((chModTemp>=65) && (chModTemp<=90)) || ((chModTemp>=97) && (chModTemp<=122)))
{
modify_password->setText(modStr);
} else {
modify_password->setText(modStr.substr(0, modSize - 1));
}
} }
}
break;

你好,是输入中文后不显示***了么?

不是,是输入中文依然显示的是*****,我已经做了判断,如果输入的是中文就会settext(""),但是setPasswordEnabled(false)后里面显示的依然是中文,发现是*************的时候settext根本不起作用,怎么解决?
稍等,我给你点截图和代码吧