我正在设置UITextView
,它有一些可以在Safari中打开的链接。
UITextView *tv = [[UITextView alloc] initWithFrame:CGRectMake(35, 100, 300, 400)];
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[@"<a href='http://google.ca'>test</a>" dataUsingEncoding:NSUTF8StringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)} documentAttributes:nil error:nil];
tv.attributedText = attributedString;
[self.view addSubview:tv];
它基本上需要一个HTML字符串(其中包含<a href=...
)然后使用iOS 7中的HTML解析方法为我提供了我的可点击UITextView
链接。
但是,如果我在将文本视图添加到视图之前添加以下行:
tv.linkTextAttributes = @{
NSUnderlineStyleAttributeName: @(NSUnderlineStyleNone)
};
没有任何改变。我可以将它设置为NSUnderlineStyleThick
并且它变得更厚。我可以将NSForegroundColorAttributeName
更改为[UIColor redColor]
以使文字变为红色,但我无法弄清楚如何让文字没有下划线。
我做错了什么?
答案 0 :(得分:0)
您可以使用[NSMutableAttributedString alloc] initWithString:str
代替NSAttributedString alloc] initWithData:data
。链接将自动检测到而不是下划线
尝试使用以下代码:
NSString *str = @"http://google.ca";
NSAttributedString * attributedString = [[NSMutableAttributedString alloc] initWithString:str];
tv.attributedText = attributedString;