作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含格式化文本和嵌入图像的 NSTextView,如下所示。
我想将上面转换为纯文本,如下所示:
Hi this is test data (...picture...)This is colored text.
最佳答案
尝试了几个小时后,我根据自己的要求提出了以下解决方案。请告诉我我们是否有更好的方法来做到这一点。
我使用以下代码创建了 NSString 类别:
+ (NSString *)plainTextFromRTFD:(NSTextStorage *)aTextStorage
attachmentString:(NSString *)aString {
NSString *returnString = @"";
//Default value of aString, If nil
if (aString == nil) {
aString = @"(...Attachment...)";
}
if (aTextStorage && aString) {
//Initialize NSMutableString object to hold plain text
NSMutableString *plainText = [[NSMutableString alloc] init];
//Loop through all the attributes one-by-one to identify the NSAttachment
for(int i =0;i<[aTextStorage length];i++) {
NSDictionary *attr= [aTextStorage attributesAtIndex:i effectiveRange:NULL];
//Check whether attribute contains NSAttachment or not
if ([attr objectForKey:@"NSAttachment"] != nil) {
//Replace NSTextAttachment with attachmentString value
[plainText appendFormat:@"%@",aString];
} else {
//Add character to plain text
[plainText appendFormat:@"%@",[[[aTextStorage characters] objectAtIndex:i] string]];
}
}
//copy NSString from NSMutableString
returnString = [plainText copy];
//release NSMutableString
[plainText release];
}
return [returnString stringByReplacingOccurrencesOfString:@"\n" withString:@" "];}
NSLog(@"%@",[NSString plainTextFromRTFD:[contentView textStorage] attachmentString:nil]);
关于nstextview - 如何在 cocoa 中将 NSTextView RTFD 数据转换为纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6516052/
我是一名优秀的程序员,十分优秀!