UITextView链接无法点击iOS 8

时间:2015-06-29 17:37:55

标签: ios uitextview

我遵循了这个:UILabel and NSLinkAttributeName: Link is not clickableUITextView link is clickable, but when I click it, Safari doesn't open,但无济于事。

我有:

uitextView.attributedText = ... some attributed string "http://google.com" ...

"链接检测","可选"和"启用用户交互"已启用。 "可编辑的"被禁用。

我还实施了UITextViewDelegate

- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)url inRange:(NSRange)characterRange
{

    return YES;
}

但是,链接显示为蓝色,但是当我点击时,没有任何反应。

2 个答案:

答案 0 :(得分:2)

我有同样的问题。没有任何帮助。

问题是,我将UITextView添加到ScrollView,然后使用sizeToFit

例如:我有view.frame(0,0,320,440)。和ScrollView contentSize(0,0,320,1000) view.frame中的链接可以正常工作,但是当您向下滚动时 - 不是。

当我向下滚动并点按UITextView时,我试图查看正在选择的视图。我添加了UITapGestureRecognizers并发现当我在UITextView的边界中点击self.view框架的边界时,它点击了UITextView。但是当我向下滚动时 - 水龙头会在ScrollView上识别为点按。 换句话说,它就像是自我视图边界的UITextView剪辑框架。

修改 我发现了问题:

我有View - ScrollView - ContentView - Elements层次结构。所以有一段时间,当ScrollView比ContentView大时,只能在ContentView的边界中点击链接。 要解决此问题,我删除了ContentView并将所有元素放置到ScrollView。希望这个答案能帮到某人:)

答案 1 :(得分:1)

尝试采用这种方法:

NSString *clickMe = [NSString stringWithFormat:@"%@", word];
    NSMutableAttributedString * str2 = [[NSMutableAttributedString alloc] initWithString:word];
    [str2 addAttribute: NSLinkAttributeName value:[NSURL URLWithString:[NSString stringWithFormat:@"https://twitter.com/%@",linkWord]] range:NSMakeRange(0, clickMe.length)];

    // replace with link
    [YourAttributedString replaceCharactersInRange:wordRange withAttributedString:str2];