属性字符串上表情符号后的空格(IOS,目标C)

属性字符串上表情符号后的空格(IOS,目标C),ios,textview,space,emoji,Ios,Textview,Space,Emoji,因此,我必须使用属性字符串为我的UITextView.n突出显示标记和@,但当我添加表情符号并在其后面单击空格时,它充当选项卡(4个空格)。有没有人知道一个解决方案来确保空间被正确识别,并且在表情符号之后不会产生那么多的空白?当我遇到这个问题时,我正在解决一个非常类似的问题。这是我的解决办法。希望对你有帮助。祝你好运 let mutableAttributedText = NSMutableAttributedString(string: textView.text) let mutableAt

因此,我必须使用属性字符串为我的UITextView.n突出显示标记和@,但当我添加表情符号并在其后面单击空格时,它充当选项卡(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
时扔掉前面的属性并从一个新的
字符串开始。这适用于1字节UTF-8字符(即ASCII字符),但对多字节UTF-8字符(特别是表情符号)会造成问题。此错误导致
UITextView
为每个紧跟表情符号的
(空格)字符呈现扩展空白。值得注意的是,扩展空白看起来像制表符,但底层的
字符串保持了正确的
字符

通过使用
textView.attributedText
初始化
mutableAttributedText
,然后删除相关属性,我克服了这个错误,同时仍然能够将属性添加到新的
nsattributedtext