2016-04-12 22 views
1

私のアプリでUITextviewを使用しています。そして、私はallowEditingTextAttributesプロパティをYESに設定して、ユーザーのコピーをブラウザからtextViewに貼り付けて正常に動作していれば、イメージと書式付きのテキストを表示します。iOSのNSAttributedStringからHTML文字列を取得する方法

UITextViewからhtmlとしてコンテンツを取得したいのですが、入手する方法はありますか? (私はUIWebViewを使用して、それを達成することができますが、私は唯一のUITextViewを使用する必要があります)

おかげで私の知る限りでは

答えて

1

、あなたがやりたい、アップルが提供するAPIはありません。帰属テキストをUITextViewからNSAttributedStringとして取得し、HTMLに変換する必要があります。しかし、これにはオープンソースのプロジェクトがあります。たとえば、DTCoreTextです。非常に高度な機能を求めていない場合は、文字列の文字をループしてスタイル属性を分析するだけで、これを自分で構築することもできます。

EDIT:実際には、これを行うAPIがあります。 NSAttributedStringdataFromRange:documentAttributes:error:を使用して、要求されたドキュメントタイプとしてNSHTMLTextDocumentTypeを渡すことができます。 乾杯!

例(スウィフトで、Objective-Cで同様に行うことができます):

//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

ありがとうございました、私はそれを試してみました(私はdataFromRange:documentAttributes:error :)を意味しますが、正しく動作していません。 – AshokGK

+0

「正しく動作していません」とはどういう意味ですか?私はそれを自分で試して、それは私の側で動作します。私の最初の答えを確認し、例を追加しました。 – Bensge

+0

貼り付けたコンテンツにアンカータグを含むimgタグが含まれていない画像と結果文字列がある場合。 – AshokGK

0

あなたはこのリポジトリを見てみることができます:https://github.com/IdeasOnCanvas/Ashton

を読むには:

AshtonHTMLReader.h 

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

そして作家へ:

AshtonHTMLWriter.h 

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

あなたに役立つかどうかを確認してください。

+0

このリポジトリは、NSTextAttachmentをhtmlのimgタグに変換しません。 – SHN

関連する問題