所以我必须使用属性字符串为我的 UITextView.n 突出显示#tags 和@' 但是当我添加一个表情符号并在其后点击空格时,它充当一个制表符(4 个空格)。有谁知道确保正确识别空间并且在表情符号之后不会创建那么多空白的解决方案?
当我遇到这个问题时,我正在解决一个非常相似的问题。这是我的解决方案。希望它对您的情况有所帮助。祝你好运!
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/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) | Powered by Discuz! X3.4 |