2012-06-06 4 views
0

MacOS NSAttributedString initWithRTF에 해당하는 iOS는 무엇입니까?MacOS NSAttributedString initWithRTF에 해당하는 iOS

응용 프로그램 키트는 RTF, RTFD 및 HTML (첨부 파일 포함 또는 제외), 그래픽 특성 (글꼴 및 눈금자 특성 포함), 특성 문자열 그리기 메서드 및 중요한 언어 계산 방법을 추가하여 Foundation의 NSAttributedString 클래스를 확장합니다 단위.

- (id)initWithRTF:(NSData *)rtfData documentAttributes:(NSDictionary **)docAttributes 

iOS 응용 프로그램에서 RTF 데이터의 짧은 스트림을 처리해야합니다. 감사합니다.

답변

2

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; 

, 적어도 뭔가 당신이 사용할 수 있습니다.

+2

감사합니다. UIWebView와 documentBocumentElement.innerText 인수로 stringByEvaluatingJavaScriptFromString 메서드를 사용하여 rtf 파일에서 일반 텍스트를 가져올 수있었습니다. – TrekOnTV2017

+0

@ radvan72 : 영리한 솔루션. 나는 UIWebView가 RTF를 표시하기를 원한다면 아무 문제가 없다고 생각하고 있었지만 실제로는 _can_ 내용을 그렇게 얻었습니다 ... – abarnert

+0

정말 고마워요! 그것은 내가 읽은 애플 개발자 사이트에서 아마도 가장 좋은 것일 것이다. WebView를 통해 RTF에서 속성이 지정된 텍스트를 가져올 수있는 방법이 있는지 알고 싶습니까? – JohnK

관련 문제