UITextView上的格式化文本

时间:2014-02-11 10:46:34

标签: ios uitextview

我认为这是一件小事,在我的应用UITextView中起着重要的作用。所以我想添加格式化功能(粗体,斜体,下划线)。

一旦我尝试使用,

[NotesTxtView setAllowsEditingTextAttributes:YES];

它工作正常但是当我将数据保存到db时,格式化的文本会变为正常。我能做些什么呢?

我的问题有解决办法吗?

帮助者,...

1 个答案:

答案 0 :(得分:2)

您还需要保存样式信息。 NSAttributedString的方法dataFromRange:documentAttributes:error:将有所帮助:

  

返回一个数据对象,其中包含与给定范围内的字符和属性对应的文本流。

所以你从db中保存并恢复NSData对象。

NSDictionary *attrs = @{NSDocumentTypeDocumentAttribute:NSRTFTextDocumentType};

// export data
NSData *data =
[self.textView.attributedText
 dataFromRange:NSMakeRange(0, self.textView.text.length)
 documentAttributes:attrs
 error:nil];

...
// save data to db, fetch later
...

// restore
self.textView.attributedText =
[[NSAttributedString alloc]
 initWithData:data
 options:nil
 documentAttributes:&attrs
 error:nil];

考虑使用其他文档类型(均可从iOS 7获得):

NSString *NSPlainTextDocumentType;
NSString *NSRTFTextDocumentType;
NSString *NSRTFDTextDocumentType;
NSString *NSHTMLTextDocumentType;