ios7 - UILabel 和 NSLinkAttributeName : Link is not clickable

标签 ios7 uilabel nsurl nsattributedstring clickable

我想将属性字符串与 NSLinkAttributeName 一起使用在 UILabel 中创建可点击的链接我的 iOS 7 项目中的实例,现在终于可以在不使用外部库的情况下实现。

NSURL *url = [NSURL URLWithString:@"http://www.google.com"];

NSDictionary *attr = [NSDictionary dictionaryWithObjectsAndKeys:
                          url, NSLinkAttributeName, nil];

在字符串上应用属性将文本显示为蓝色和下划线,但单击/点击时没有任何 react 。为标签启用了用户交互。
有人知道怎么做这个吗?谢谢!

最佳答案

我现在可以回答我自己的问题:
我正在使用 UITextView而不是 UILabel现在。我已格式化 UITextView看起来和表现得像我的标签并添加:

UITextView *textView = [[UITextView alloc] init];
textView.scrollEnabled = NO;
textView.editable = NO;
textView.textContainer.lineFragmentPadding = 0;
textView.textContainerInset = UIEdgeInsetsMake(0, 0, 0, 0);
textView.delegate = self;

不要忘记设置委托(delegate),你必须实现UITextViewDelegate !现在我们实现委托(delegate)方法:
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)url inRange:(NSRange)characterRange
{
     return YES;
}

这会自动打开提供的 NSURL -我点击/点击问题中属性字符串的实例。

请记住:这仅适用于 iOS 7,对于旧版支持,您需要外部库

更新:

制作UITextView s 的行为就像标签一样,最后一团糟,我偶然发现了一些可怕的 iOS 行为。我最终使用了 TTTAttributedLabel库非常棒,允许我使用标签而不是 UITextView s。

关于ios7 - UILabel 和 NSLinkAttributeName : Link is not clickable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19854506/

相关文章:

crash - 在iOS7中[提示显示]导致应用崩溃

iphone - 保留随机 View 之间的 UILabel 值

cocoa-touch - 使用 UISliders 值更改 UILabels 文本

ios awkard 图像加载(url 到 nsdata 到 uiimage 到 uiimageview)

ios - 全长 URL "edit"使用 NSMakeRange

swift - 如何使用 NSURL 查看某个文件夹是否是另一个文件夹的子文件夹?

iphone - iOS 7 蓝牙 - 即使手机重启后也能在后台处理事件的应用程序

iphone - 使用自动布局时内容发生变化

iOS 7 中的 UITableViewCell separatorInsets

ios - 平方根符号上的屋顶