2016-06-27 5 views
2

그래서 #tags 및 @ UITextView.n에 대한 강조 표시된 특성 문자열을 사용해야합니다. 그러나 내가 이모티콘을 추가하고 그 후에 공간을 쳤을 때, 그것은 탭으로 작동합니다 (4 칸). 누구든지 공간을 올바르게 인식하고 이모티콘 이후 많은 공백을 만들지 않는 솔루션을 알고 있습니까?속성 문자열 (IOS, 목표 C)에 이모티콘 후 공간

답변

1

이 문제가 발생했을 때 비슷한 문제가 발생했습니다. 여기 내 해결책이있다. 잘하면 그것은 당신의 경우에 도움이됩니다. 행운을 빕니다!

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 

나는 UITextViewTextDidChangeNotification을 받으면 신선한 String 시작 & 이전 속성을 던져 싶어하기 때문에 나는 textView.text보다는 textView.attributedTextmutableAttributedText를 초기화했다. 이것은 1 바이트 UTF-8 문자 (즉, ASCII 문자)에서 작동하지만 멀티 바이트 UTF-8 문자, 특히 그림 이모에 문제가 있습니다. 이 버그로 인해 UITextView은 각 ” “ (공백) 문자에 대해 확장 된 공백을 렌더링합니다. 특히 확장 된 공백 문자는 탭 문자처럼 보이지만 밑에있는 String은 올바른 ” “ 문자를 유지합니다. 여전히 신선한NSAttributedString에 속성을 추가 할 수있는 동안 textView.attributedText은 다음 관련 속성을 제거하여 mutableAttributedText를 초기화하여

, 나는이 버그를 극복했다.