如何在IOS7中使#key和@key可点击

nig*_*aph 4 ios ios5 ios6

任何人都知道如何在IOS7中的评论文本中使#KEY和@NAME可以点击(例如,与Instagram相同的方式)?我正在尝试使用NSMutableAttributedString,但我不确定如何检测点击事件,在下图中单击@Username应该将用户带到用户的配置文件

在此输入图像描述

Bri*_*kel 7

看看UITextViewDelegate协议,iOS7中有一种新方法:textView:shouldInteractWithURL:inRange:.

您没有共享任何代码,但可以安全地假设您有attributedString一个range代表您变成蓝色的区域.我还假设你可以将用户名提取到一个名为的变量中username.

使用这三条信息,您可以为该范围添加链接属性.

[attributedString addAttribute:NSLinkAttributeName
                         value:[@"username://" stringByAppendingString:username]
                         range:range];
Run Code Online (Sandbox Code Playgroud)

在你的代表中,你可以这样做:

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange
{
    if ([URL.scheme isEqualToString:@"username"]) {
        [self doSomethingWithUserName:URL.host];
        return NO;
    }

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

我相信他们在WWDC 2013的介绍文本工具包会议中进行了演示.