Rog*_*ger 31 cocoa nsattributedstring
我有一个NSData包含NSAttributedString源自a的属性text()的实例NSTextView.我想将属性字符串转换为普通字符串(NSString)而不进行任何格式化以进行一些文本分析(在转换时我无法访问原始NSTextView及其NSTextStorage实例).
最好的方法是什么?
编辑:
出于好奇,我检查了以下结果:
[[[self textView] textStorage] words]
Run Code Online (Sandbox Code Playgroud)
这对于进行一些文本分析似乎很方便.结果数组包含NSSubTextStorage的实例(下面的单词"Eastern"):
东部{NSFont ="\"LucidaGrande 11.00 pt.P [](0x7ffcaae08330)fobj = 0x10a8472d0,spc = 3.48 \""; NSParagraphStyle ="对齐0,LineSpacing 0,ParagraphSpacing 0,ParagraphSpacingBefore 0,HeadIndent 0,TailIndent 0,FirstLineHeadIndent 0,LineHeight 0/0,LineHeightMultiple 0,LineBreakMode 0,Tabs(\n 28L,\n 56L,\n 84L,\n 112L,\n
140L,\n 168L,\n 196L,\n 224L,\n 252L,\n 280L,\n
308L,\n \n 336L \n),DefaultTabInterval 0,Blocks(null),Lists(null) ,BaseWritingDirection -1,HyphenationFactor 0,TighteningFactor 0.05,HeaderLevel 0"; }
NSSubTextStorage可能是一个私有类,因为我找不到任何文档.它还保留所有格式.
CRD*_*CRD 60
如果我理解正确的话,你有NSData,比如说data,含有编码NSAttributedString.要扭转这个过程:
NSAttributedString *nas = [[NSAttributedString alloc] initWithData:data
options:nil
documentAttributes:NULL
error:NULL];
Run Code Online (Sandbox Code Playgroud)
并获得没有属性的纯文本,然后执行:
NSString *str = [nas string];
Run Code Online (Sandbox Code Playgroud)