请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 属性字符串上表情符号后的空格(IOS,Objective C)

[复制链接]
菜鸟教程小白 发表于 2022-12-13 17:12:35 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

所以我必须使用属性字符串为我的 UITextView.n 突出显示#tags 和@' 但是当我添加一个表情符号并在其后点击空格时,它充当一个制表符(4 个空格)。有谁知道确保正确识别空间并且在表情符号之后不会创建那么多空白的解决方案?



Best Answer-推荐答案


当我遇到这个问题时,我正在解决一个非常相似的问题。这是我的解决方案。希望它对您的情况有所帮助。祝你好运!

let mutableAttributedText = NSMutableAttributedString(string: textView.text)
let mutableAttributedText = NSMutableAttributedString(attributedString: textView.attributedText)
mutableAttributedText.removeAttribute(NSForegroundColorAttributeName, range: NSRange(location: 0, length: mutableAttributedText.length))
…
textView.attributedText = mutableAttributedText

我用 textView.text 而不是 textView.attributedText 初始化 mutableAttributedText 因为我想丢弃以前的属性并从收到 UITextViewTextDidChangeNotification 后的新 String。这适用于 1 字节 UTF-8 字符(即 ASCII 字符),但对于多字节 UTF-8 字符,特别是表情符号会造成问题。此错误导致 UITextView 为每个尾随 emoji 的 ” “ (空格)字符呈现扩展的空白。值得注意的是,扩展的空白看起来像一个制表符,但底层的 String 保持了正确的 ” “ 字符。

通过使用 textView.attributedText 初始化 mutableAttributedText 然后删除相关属性,我克服了这个错误,同时仍然能够向 fresh NSAttributedString.

关于ios - 属性字符串上表情符号后的空格(IOS,Objective C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38049071/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap