Cocos2dx-CCEditBox输入框中英文检测
来源:互联网 发布:数据库技术发展 编辑:程序博客网 时间:2024/05/22 21:17
用法如下:
1.类继承public cocos2d::extension::CCEditBoxDelegate,并实现CCEditBox需要实现的代理
virtual void editBoxEditingDidBegin(cocos2d::extension::CCEditBox* editBox);
virtual void editBoxEditingDidEnd(cocos2d::extension::CCEditBox* editBox);
virtual void editBoxTextChanged(cocos2d::extension::CCEditBox* editBox, const std::string& text);
virtual void editBoxReturn(cocos2d::extension::CCEditBox* editBox);
2.定义输入框
cocos2d::extension::CCEditBox* mEditName;
mEditName =SUIMgr.createCEditBox("EditAccount",this,400,400,250,60);
mEditName->setPosition(middleParentNode->getPosition());
mEditName->setPlaceholderFontColor(ccc3(255,255,255));
mEditName->setText("请输入名字");
mEditName->setMaxLength(10);
this->addChild(mEditName);
void editBoxEditingDidBegin(cocos2d::extension::CCEditBox* editBox)
{
mEditName->setText("");
mStrName ="";
}
void editBoxEditingDidEnd(cocos2d::extension::CCEditBox* editBox){
}
void editBoxTextChanged(cocos2d::extension::CCEditBox* editBox, const std::string& text){
mStrName = text;
}
void editBoxReturn(cocos2d::extension::CCEditBox* editBox){
}
4.检测函数(输入完成后调用,或向服务器请求时候调用,自检)
void checkNameNomative(conststring& text)
{
if (text =="") {
CCMessageBox("名字不能为空","account error!");
return;
}
//在苹果环境下需转为宽字符,因一个string中文长度为3,宽字符为1
std::wstring name_wstring =Utils::s2ws(text);
int chiniseSize =0;
int engnishSize =0;
for (int i =0; i != name_wstring.length(); i++) {
// 判断是否为英文字母
if (((name_wstring[i] >=48) && (name_wstring[i]<=57)) || ((name_wstring[i] >=65) && (name_wstring[i] <=90)) || ((name_wstring[i] >=97) && (name_wstring[i] <=122))) {
engnishSize ++;
}
//是否为汉字
if (name_wstring[i] >127) {
chiniseSize++;
}
}
// 全部为汉字1~6
if (((chiniseSize >0) && (chiniseSize <7)) && (engnishSize ==0)) {
CCLOG("全部汉字:%d",chiniseSize);
}
// 全部英文2~10
elseif (((engnishSize >1) && (engnishSize <11)) && (chiniseSize == 0)){
CCLOG("全部英文:%d",engnishSize);
}
// 汉字加英文1~6
elseif (((chiniseSize >0) && (chiniseSize <7)) && ((engnishSize > 0) && (engnishSize <11)) && (chiniseSize + engnishSize <7)) {
CCLOG("汉字加英文:%d + %d",chiniseSize, engnishSize);
}
// 长度错误
else {
CCLOG("长度错误!%d + %d",chiniseSize, engnishSize);
}
}
// string 转宽字符函数 注:utf8是一开源文件,其中有包含检测的代码。用时需导入相关几个文件
std::wstringUtils::s2ws(conststd::string& s)
{
std::wstring resultstring;
resultstring.reserve(s.length());
utf8::utf8to16(s.begin(), s.end(),std::back_inserter(resultstring));
return resultstring;
}
最后,cceditbox未做中英文区分,需自己写检测方法,用此方法可实现检测以及达到中英文输入自量的不同。
来自:http://blog.csdn.net/u010619611/article/details/36391455
- cocos2dx-CCEditBox输入框中英文检测
- Cocos2dx-CCEditBox输入框中英文检测
- CCEditBox lua 输入框
- cocos2dx CCEditBox
- cocos2dx-CCEditBox
- cocos2dx一编辑框的使用CCEditBox
- cocos2d-x 输入框CCEditBox的使用
- cocos2dx cceditbox使用注意事项
- cocos2dx之CCEditBox
- cocos2dX UI控件之CCEditBox
- 和屌丝一起学cocos2dx-CCEditBox
- CCEditBox 编辑框
- CCEditBox 编辑框
- ccEditbox
- cocos2d-x 有关CCEditBox设置除输入框以外的可点击触发区域
- [Quick-x]移动CCEditbox的父对象导致输入框位置偏移问题
- cocos2dx中输入框输入限制数字
- CCEditBox/CCEditBox
- Python 实现matlab数据绘制
- 不同数据库中临时表的使用说明
- 屏幕输入法
- 大小堆 排序
- 简单的来谈一谈angular2.0的表单
- Cocos2dx-CCEditBox输入框中英文检测
- 通过easy_install安装egg库遇到的问题
- 蓝桥杯 历届试题 九宫重排
- [Gradle系列]Gradle打包apk多版本,多渠道,多环境,多功能,多模块随心所欲
- Atitit.软件中见算法 程序设计五大种类算法
- 使用POI是读取excel文件中电话号码及日期出现的问题及解决
- week4_day3_JavaSE
- ibatis对数据库进行批量操作
- 叹息