iOS에는 해당 사항이 없습니다. NSAttributedString
의 iOS 버전에는 CoreText에 필요한 기능 만 있으며 CoreText 자체에는 UI 클래스에 필요한 기능 만 있으며 RTF 처리는 포함되지 않습니다.
적어도 내가 알기로, 적어도 5.0에서 UIWebView
은 RTF를 처리하는 유일한 방법입니다. https://developer.apple.com/library/ios/#qa/qa1630/_index.html을 참조하십시오. 애플의 다른 애플 리케이션 중 일부가 리치 텍스트를 처리하는 것처럼 보이기 때문에 5.1로 변경되었을 수도있다. (그런데 애플 리케이션은 UITextView
에서 UIWebView
으로 바뀌었다. 웹보기가 결코 가은 텍스트 대신, HTML과 CSS를 구축 기인 구축 없기 때문에
UIWebView
, 당신에게 RTF에서 기인 한 텍스트에 액세스 할 수있는 방법을 제공하지 않습니다.
좋은 소식은이 HTML과 CSS가 DOM에서 사용 가능하다는 것입니다. 적어도 일부 유형의 경우에는 이것이 사실이 아닙니다. 액세스 할 수없는 WebKit 내의 일부 마법 코드로 렌더링되는 불투명 한 래퍼가 있지만 RTF는 이러한 유형 중 하나가 아닙니다.
Safari Web Inspector을 사용하여 a sample RTF file을 내 iPhone에 열어 DOM을 살펴 보았습니다. 그것은이 같은 노드 가득 : 그 클래스가 처음에 사용하고있는 태그 앞에 <style>
태그 바로 인라인으로 정의된다
<span class="s2"><span class="bumpedFont16">m a test file. This is some </span></span>
<span class="s3"><span class="bumpedFont16">bold</span></span>
...
그래서, 텍스트가 노드를 걸 으면,있다. 텍스트는 속성이있는 문자 범위와 비슷합니다 (실제로 시작 및 끝 인덱스를 직접 계산해야하는 경우 ...). 계산 된 스타일은 대략적으로 속성 사전과 비슷합니다. 물론 "대략 좋아한다"는 "동일하지 않다"; 계산 된 스타일은 다음과 같습니다 (최종 목표는 물론, HTML을 생성하는 경우를 제외하고) ...하지만 NSAttributedString은과 실제로 호환되지, 거의 같은 좋은하지 그래서
direction: ltr; display: inline; font-family: 'Times New Roman'; font-size: 22px;
font-weight: bold; height: auto; margin-bottom: 0px; margin-top: 0px;
padding-right: 0px; text-align: left; width: auto;
, 적어도 뭔가 당신이 사용할 수 있습니다.
감사합니다. UIWebView와 documentBocumentElement.innerText 인수로 stringByEvaluatingJavaScriptFromString 메서드를 사용하여 rtf 파일에서 일반 텍스트를 가져올 수있었습니다. – TrekOnTV2017
@ radvan72 : 영리한 솔루션. 나는 UIWebView가 RTF를 표시하기를 원한다면 아무 문제가 없다고 생각하고 있었지만 실제로는 _can_ 내용을 그렇게 얻었습니다 ... – abarnert
정말 고마워요! 그것은 내가 읽은 애플 개발자 사이트에서 아마도 가장 좋은 것일 것이다. WebView를 통해 RTF에서 속성이 지정된 텍스트를 가져올 수있는 방법이 있는지 알고 싶습니까? – JohnK