我们的应用程序中有一个Text编辑器,它支持Rich和Plain Text。因此,我们使用WebView显示RichText和NSTextView以显示纯文本,内容以HTML格式保存。我正面临着在从HTML转换时在文本末尾添加新行的问题。
示例HTML:<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">CR1<br><div><br></div><div>CR2</div></body></html>
以下是从HTML到NSString的转换代码
- (NSString *)convertHTMLToPlain:(NSString *)str {
NSString *finalString = nil;
NSAttributedString *attrString = nil;
NSData *theData = [str dataUsingEncoding:NSUnicodeStringEncoding];
if (nil != theData) {
NSDictionary *encodingDict = [NSDictionary dictionaryWithObject:@(NSUnicodeStringEncoding) forKey:@"CharacterEncoding"];
attrString = [[NSAttributedString alloc] initWithHTML:theData documentAttributes:&encodingDict];
NSString *result = [attrString string];
NSString *specialCharecter = @"\u2028";
if ([result containsString:specialCharecter]) {
finalString = [result stringByReplacingOccurrencesOfString:specialCharecter
withString:@""];
} else {
finalString = result;
}
}
return finalString;
}
结果的值显示如下:
您可以看到最后没有<br>
标记,但它仍会添加一个新行,但如果我在webView中打开HTML文件,则会正确显示。有人能告诉我为什么会出现这种行为。我该如何解决这个问题?