怎么在iOS中使用文本框限制字符串长度

  介绍

本篇文章为大家展示了怎么在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];>

上述内容就是怎么在iOS中使用文本框限制字符串长度,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

怎么在iOS中使用文本框限制字符串长度