本篇文章为大家展示了怎么在iOS中使用文本框限制字符串长度,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
<强>方法如下:强>
<强> 1,判断字符串是否超出长度强>
[self.txfUsername addTarget: self 行动:@ selector (textFieldDidChange:), forControlEvents: UIControlEventEditingChanged); ,安康;(void) textFieldDidChange:发送者(id) { ,if (self.textField.text.length 祝辞,最大长度),//,最大长度为最大字数 ,{ ,//超出限制字数时所要做的事 ,} }
为什么在这里要自己监听文本框中文字的变化,而不直接使用文本框的代理方法<代码>——(BOOL)文本框:*)(UITextField textField shouldChangeCharactersInRange: (NSRange) replacementString范围:(NSString *)字符串{代码> ?
因为这个方法在中文书输入法下,只能输入一个词的情况,如果联想词是两个词,也可以输入。所以会出现误差。直接监听UIControlEventEditingChanged是最靠谱的。
<强> 2,超出长度不可输入强>
if (self.textField.text.length 祝辞,最大长度),//,最大长度为最大字数 ,{=,self.textField.text [self.txfUsername.text substringToIndex:,最大长度),,//,最大长度为最大字数 以前,}>如果超出长度,永远把前最大长度的子字符串赋给文本框的文本,即textField永远只显示前最大长度个字,视觉效果就是无法继续输入。
<强> 3,前面所有用到的最大长度均为字符串长度,不论数字字母还是汉字,最后要解决的问题就是判断字符数。强>
//按照中文两个字符,英文数字一个字符计算字符数 ——(了NSUInteger), unicodeLengthOfString:, (NSString *), text { ,NSUInteger asciiLength =, 0; ,for (NSUInteger 小姐:=,0;,小姐:& lt;, text.length;,我+ +),{ ,unichar uc =, (text characterAtIndex:,我); +=,asciiLength isascii(加州大学),?,1,,2; ,} ,return asciiLength; }<代码>了NSUInteger lenOfBytes=[文本lengthOfBytesUsingEncoding: NSUTF8StringEncoding];> 代码也试过,lengthOfBytesUsingEncoding就是按照编码返回字节数,但是NSUTF8StringEncoding是按照英文一个字符,中文三个字符来编码的,NSUnicodeStringEncoding是按照英文数字汉字都是两个字符编码的,目前iOS中的编码方法都和需求不符,所以需要另外做计算。
上述内容就是怎么在iOS中使用文本框限制字符串长度,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
怎么在iOS中使用文本框限制字符串长度