2016-04-12 9 views
1

bekommen Ich verwende UITextview in meiner App. Und ich habe die Eigenschaft allowsEditingTextAttributes auf YES gesetzt, um Bilder und formatierten Text anzuzeigen, wenn Benutzerkopien aus dem Browser in textView eingefügt werden und gut funktionieren.wie HTML-String von NSAttributedString in iOS

Ich möchte den Inhalt zurück als HTML von UITextView abrufen, gibt es eine Möglichkeit, es zu bekommen? (Ich kann es erreichen UIWebView verwenden, aber ich brauche UITextView nur zu benutzen)

Dank

Antwort

1

Soweit ich weiß, gibt es keine API von Apple zur Verfügung gestellt ist, zu tun, was Sie wollen. Sie müssen den attributierten Text als NSAttributedString von UITextView abrufen und in HTML konvertieren. Dafür gibt es jedoch Open-Source-Projekte, zum Beispiel . Wenn Sie nicht nach sehr fortschrittlichen Funktionen suchen, können Sie diese auch selbst erstellen, indem Sie einfach die Zeichen der Zeichenfolge durchlaufen und die Stilattribute analysieren.

EDIT: Eigentlich gibt es eine API, um dies jetzt zu tun! Sie können NSAttributedString 's dataFromRange:documentAttributes:error: verwenden und NSHTMLTextDocumentType als den angeforderten Dokumenttyp übergeben. Prost!

Beispiel (in Swift kann in Objective-C in ähnlicher Weise durchgeführt werden):

//Grab the attributed string, convert it to HTML data 
let data = try self.textView.attributedText.dataFromRange(
    NSMakeRange(0, self.textView.attributedText.length), 
    documentAttributes: [NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType] 
) 

//Convert the UTF-8 data to a string, display it in the text view 
self.textView.attributedText = NSAttributedString(
    string: NSString(data: data, encoding: NSUTF8StringEncoding)! as String 
) 
+0

Vielen Dank, ich habe versucht (ich meine dataFromRange: documentAttributes: Fehler :), aber es funktioniert nicht richtig. – AshokGK

+0

Was meinst du mit 'nicht richtig funktioniert'? Ich habe es selbst ausprobiert und es funktioniert auf meiner Seite. Überprüfen Sie meine erste Antwort, ich fügte ein Beispiel hinzu. – Bensge

+0

Wenn der eingefügte Inhalt Bilder enthält und die Ergebniszeichenfolge keine IMG-Tags mit Anchor-Tags enthält. – AshokGK

0

Sie einen Blick auf dieses Repository nehmen könnte: https://github.com/IdeasOnCanvas/Ashton

zu lesen:

AshtonHTMLReader.h 

- (NSAttributedString *)attributedStringFromHTMLString:(NSString *)htmlString; 

Und zum Schreiber:

AshtonHTMLWriter.h 

- (NSString *)HTMLStringFromAttributedString:(NSAttributedString *)input; 

Sehen Sie, ob es Ihnen helfen kann.

+0

Dieses Repository konvertiert NSTextAttachment nicht in HTML-Tags. – SHN

Verwandte Themen