关于CCTextFidldTTF如何才能只输入数字,不接收其他字符

今天同事问我这个问题,想了一下,可以继承CCTextFieldDelegate作处理,代码如下:

class CCTextFieldDelegateWithOnlyNumber : public cocos2d::CCTextFieldDelegate
{
virtual bool onTextFieldInsertText(CCTextFieldTTF * sender, const char * text, int nLen)
{
if (text && nLen == 1)
{
char c = text;
if (c>=‘0’ && c<=‘9’)
{
return false;
}
}
return true;
}
};

附件改了一下tests的代码,覆盖后运行tests就能看到效果了。

原理就是在插入字符时做些附加操作,检验一下输入的是不是数字就可以了,很简单呐

— Begin quote from ____

布莱特 发表于 2012-4-26 17:16 url

原理就是在插入字符时做些附加操作,检验一下输入的是不是数字就可以了,很简单呐 …

— End quote

:slight_smile: 你好
你这个对我很有帮助
但是我在另外一个地方遇到了问题
CCTextFieldTTF 如何设置输入文本后显示为密码

— Begin quote from ____

z104207 发表于 2012-5-9 17:11 url

你好
你这个对我很有帮助
但是我在另外一个地方遇到了问题

— End quote

情况应该类似吧 你只需要讲显示的字符换成*就可以了吧

— Begin quote from ____

布莱特 发表于 2012-4-26 17:16 url

原理就是在插入字符时做些附加操作,检验一下输入的是不是数字就可以了,很简单呐 …

— End quote

:slight_smile: 你好
你这个对我很有帮助
但是我在另外一个地方遇到了问题
CCTextFieldTTF 如何设置输入文本后显示为密码