にNSAttributed
設定した (HTML からの) 文字列がありますUITextView
。
- (void)setHtml:(NSString *)html {
NSData *htmlData = [html dataUsingEncoding:NSUTF8StringEncoding];
// Create the HTML string
NSDictionary *importParams = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType};
NSError *error = nil;
self.htmlString = [[NSAttributedString alloc] initWithData:htmlData options:importParams documentAttributes:NULL error:&error];
self.editorView.attributedText = self.htmlString;
}
次に、ユーザーが必要なものを編集できるようにし、それを再度 HTML に変換したいので、次を使用します。
- (NSString *)getHTML {
NSDictionary *exportParams = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType};
NSData *htmlData = [self.editorView.attributedText dataFromRange:NSMakeRange(0, self.editorView.attributedText.length) documentAttributes:exportParams error:nil];
return [[NSString alloc] initWithData:htmlData encoding:NSUTF8StringEncoding];
}
HTMLを返しますが、それは私が望む方法ではありません。すべてに class 属性が与えられ、CSS がドキュメントの上部に配置されます。画像やリンクなどは、返される HTML には含まれておらず、おそらくさらに多くの問題が含まれています。
から HTML を取得するより良い方法はありNSAttributedString
ますか? または、を解析しNSAttributedString
て独自の HTML を作成する方法はありますか?