美文网首页Swift基础
swift中QMUITextView字数限制异常

swift中QMUITextView字数限制异常

作者: 笑破天 | 来源:发表于2021-04-09 20:05 被阅读0次

    设置了QMUITextView的maximumTextLength之后出现两个问题:
    1、字符串中有汉字、英文、emoji表情的时候,字符个数和count不一致
    2、拷贝粘贴的时候没走textViewDidChange方法,不会更新已输入字数显示

    原因:input.maximumTextLength控制的是字符个数,和string.count不一致。
    解决:把swift的String转为NSString然后用string.length即可。粘贴不走textViewDidChange,新加一个代理方法shouldChangeTextIn什么都不写即可。两脸迷惑(⊙_⊙)?

    iOS中几种方法的计算结果
    QMUI的计算结果:emoji是2个,中文1个(标点和汉字),英文1个(标点和字母)
    char.utf8.count结果:emoji是4个,中文3个(标点和汉字),英文1个(标点和字母)
    NSString.length结果:emoji是2个,中文1个(标点和汉字),英文1个(标点和字母)
    String.count结果:emoji是1个,中文1个(标点和汉字),英文1个(标点和字母)

    for index in text.indices {
          let char = content[index]
          print(char.utf8.count)
    }
    

    参考
    关于UITextView的textViewDidChange回调没有调用的问题解决
    iOS计算输入字符数

    相关文章

      网友评论

        本文标题:swift中QMUITextView字数限制异常

        本文链接:https://www.haomeiwen.com/subject/caewkltx.html