我有一个NSAttributedString,它是用HTML制作的。
NSAttributedString *decodedString = [[NSAttributedString alloc] initWithData:[encodedString dataUsingEncoding:NSUTF8StringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]} documentAttributes:nil error:nil];
self.story.attributedText = decodedString;
当我运行代码并查看TextView(self.story)时,除了超链接(HTTP)之外,HTML中的所有文本和图像都会显示出来。
他们占据的空间在那里,但链接不是
示例:超链接________________应该在那里。 只是没有____它只是空白。
控制台显示NSAttributedString显示
{
NSColor = "UIDeviceRGBColorSpace 0 0 0.933333 1";
NSFont = "<UICTFont: 0x15654c230> font-family: \"Times New Roman\"; font-weight: normal; font-style: normal; font-size: 12.00pt";
NSKern = 0;
NSLink = "https://www.kickstarter.com/projects/1425492550/sesame-your-key-reinvented";
NSParagraphStyle = "Alignment 4, LineSpacing 0, ParagraphSpacing 12, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (\n), DefaultTabInterval 36, Blocks (null), Lists (null), BaseWritingDirection 0, HyphenationFactor 0, TighteningFactor 0, HeaderLevel 0";
NSStrokeColor = "UIDeviceRGBColorSpace 0 0 0.933333 1";
NSStrokeWidth = 0;
NSUnderline = 1;
}
但&#34; https://www.kickstarter.com/projects/1425492550/sesame-your-key-reinvented&#34;无处可寻。
关于为什么会发生这种情况以及如何解决这个问题的任何想法?
答案 0 :(得分:0)
我正在回答我自己的问题。
链接显示为白色(在白色背景上),并且它们无法点击,因此看起来好像它们不在那里。
我用这段代码修复了它。
twocell.story.linkTextAttributes = @{NSForegroundColorAttributeName:[UIColor darkGrayColor]};
NSMutableAttributedString *res = [twocell.story.attributedText mutableCopy];
[res beginEditing];
[res enumerateAttribute:NSUnderlineStyleAttributeName inRange:NSMakeRange(0,res.length) options:0 usingBlock:^(id value, NSRange range, BOOL *stop) {
if (value){
[res addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:range];
[res endEditing];
[twocell.story setAttributedText:res];
}
}];
将颜色更改为深灰色并添加下划线。