2014-06-10 5 views
2

에서 RTF를 만드는 방법 내가 RTF 문자열로 변환 할 수 있습니다 다음 사용하여 문자열을 기인하기 : 목표 C - NSAttributedString은

NSAttributedString *attributedStr = [[NSAttributedString alloc] initWithData:data options:@{NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType} documentAttributes:nil error:nil]; 

지금 내가 어떻게 RTF 문자열 AttributedString의에서 다시 변환 할 수 있습니까?

+0

그렇게 할 방법이 없다면 가능한 한 의심 스럽습니다. – trojanfoe

답변

9

당신은 -dataFromRange를 사용하려면 오류 : 물론

NSAttributedString *str = [[NSAttributedString alloc] initWithString:@"YOLO" attributes:nil]; 
NSData *data = [str dataFromRange:(NSRange){0, [str length]} documentAttributes:@{NSDocumentTypeDocumentAttribute: NSRTFTextDocumentType} error:NULL]; 
[data writeToFile:@"/me.rtf" atomically:YES]; 

는 대신 "욜로"의 일부 속성을 가지고 싶어 , 그러나 당신은 아이디어를 얻는다.

또한이 내용을 디스크에 쓰려면 fileWrapperFromRange : documentAttributes : error : 옵션이 더 좋습니다. 읽기 및 쓰기에 대한 자세한 내용은 다음을 참조하십시오. Attributed String Programming Guide

+0

난 사용 NSDictionary * documentAttributes = [NSDictionary dictionaryWithObjectsAndKeys : NSRTFTextDocumentType, NSDocumentTypeDocumentAttribute, 없음]; NSData * rtfData = [txtView.attributedText dataFromRange : NSMakeRange (0, txtView.attributedText.length) documentAttributes : documentAttributes 오류 : NULL]; NSString * rtfString = [[NSString alloc] initWithData : rtfData 인코딩 : NSUTF8StringEncoding]; – Hassy

+0

도와 줘서 고마워. :) – Hassy

+1

@ghazi_jaffary 그게 내가 여기있는 이유야. –

0

아래 방법으로이를 수행 documentAttributes :

NSData *rtfdata = [attributedText RTFDFromRange:NSMakeRange(0, attributedText.length) 
       documentAttributes:nil]; 
+0

NSAttributedString – Hassy

+0

에 대한 RTFDFromRange 메소드가 없습니다. MAC 용이고 iOS 용이 아닙니다. 링크 : https://developer.apple.com/library/Mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSAttributedString_AppKitAdditions/Reference/Reference.html – Apurv

+0

예, 알았는데 iOS 용으로 필요합니다. iOS 대신 사용할 수 없습니다. ? – Hassy