如何使UITextView可点击链接没有下划线?

时间:2015-02-12 00:40:41

标签: objective-c uiview uikit uitextview nsattributedstring

我正在设置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]以使文字变为红色,但我无法弄清楚如何让文字没有下划线。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您可以使用[NSMutableAttributedString alloc] initWithString:str代替NSAttributedString alloc] initWithData:data。链接将自动检测到而不是下划线

尝试使用以下代码:

NSString *str = @"http://google.ca";
NSAttributedString * attributedString = [[NSMutableAttributedString alloc] initWithString:str];
tv.attributedText = attributedString;