TextField和TextView字数限制

字符限制和字节限制不一样,所以我们千万不能弄错了,通常我们用的是字符限制。

这里是Demo

------以汉字为例------
字符限制:输入框只检测输入确定的文字
- (void)textFieldDidChange:(UITextField *)textField
{
 NSString *toBeString = textField.text;
 
 UITextRange *selectedRange = [textField markedTextRange];
 UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];
  
 // 没有高亮选择的字,则对已输入的文字进行字数统计和限制,防止中文被截断
 if (!position){
 if (toBeString.length > _maxLength){
  //中文和emoj表情存在问题,需要对此进行处理
  NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, _maxLength)];
  textField.text = [toBeString substringWithRange:rangeRange];
 }
 }
}
字节限制:输入框中也会检测到你输入的拼音
- (void)textFieldDidChange:(UITextField *)textField
{
 NSString *toBeString = textField.text;
 //---字节处理
 NSInteger bytesCount = strlen([textField.text UTF8String]);
 if (bytesCount > _maxBytesLength) {
 NSString *content = [textField.text subStrWithUtf8Len:(int)_maxBytesLength];
 textField.text = content;
 }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容