사용자 지정 NSTextStorage 하위 클래스에서 그림 이모티크 문제가 있습니다. 클래스는 전달 된 속성을 저장하지 않습니다. 대신 자체 생성 :사용자 지정 NSTextStorage : 이모티콘이 기본적으로 표시되지 않습니다.
override func attributesAtIndex(location: Int, effectiveRange range: NSRangePointer) -> [String : AnyObject] {
if range != nil {
range.memory = NSMakeRange(0, self.string.length)
}
let attributes = [
NSFontAttributeName: NSFont.systemFontOfSize(14)
]
return attributes
}
override func setAttributes(attrs: [String : AnyObject]?, range: NSRange) {
// does nothing
}
대부분 잘 작동합니다. 그러나 문자열에 그림이 있으면 단순히 나타나지 않습니다. NSTextView가 텍스트 저장소에하는 호출을 검사 할 때, 텍스트보기는 이모티콘 범위의 글꼴 특성이 나타날 때마다 AppleColorEmoji 글꼴로 설정하려고 시도합니다. 텍스트 뷰를 "속성 진리"의 소스로 사용하는 경우에는 괜찮습니다. 그러나 프로그램이 그런 식으로 작동하는 것을 원하지 않습니다. 필자의 경우 텍스트 저장 장치는 모든 특성의 유일한 공급 업체 여야합니다. 텍스트보기가 속성별로 보내는 모든 것을들을 수 없습니다.
내 문자열에서 이모티콘을 수동으로 감지하고 AppleColorEmoji 글꼴을 수동으로 설정해야합니까? 아니면 더 좋은 방법이 있습니까? 이미 대체 글꼴을 사용하고 누락 된 문자가 포함 된 글꼴을 자동 검색하려고 시도했지만 이모티콘은 이러한 방법으로는 다루지 않습니다.