У меня есть строка 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, но я не хочу этого делать. Каждому присваивается атрибут класса, а CSS - в верхней части документа. Такие вещи, как изображения и ссылки, даже не включены в возвращенный HTML и, вероятно, больше проблем.
Есть ли лучший способ получить HTML из NSAttributedString
? Или, есть способ, которым я мог бы проанализировать NSAttributedString
и написать собственный HTML-код?