将url添加到OHAttributedLabel但不调用shouldFollowLink委托

时间:2013-04-29 09:55:29

标签: ios uilabel nsattributedstring

我在OHAttributedLabel中添加了URL到属性字符串(“忘记密码”链接到www.xxx.com“)。一切看起来都很完美,除非我点击该字符串时没有任何反应。

它应该在safari中打开该URL。然后当我尝试添加委托方法时。

-(BOOL)attributedLabel:(OHAttributedLabel*)attributedLabel shouldFollowLink:(NSTextCheckingResult*)linkInfo

根本不调用此委托方法。代理设置正确,因为我尝试了另一个委托方法,它正在工作

  -(UIColor*)attributedLabel:(OHAttributedLabel*)attributedLabel colorForLink:(NSTextCheckingResult*)linkInfo underlineStyle:(int32_t*)underlineStyle; 

我通过Interface builder设置UILabel并将其类更改为OHAtrributedLabel。这是我的代码

  //forgotLabel.text is "Forgot Password"
   NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:forgotLabel.text];

     [attr setLink:[NSURL URLWithString:@"http://www.yahoo.com"] range:NSMakeRange(0, attr.length)];

    //forgotLabel is OHAttributedLabel 
  forgotLabel.attributedText = attr
  forgotLabel.delegate = self;

有人可以帮忙吗?我不想使用TTTAttributedLabel,因为在我的项目中我在tablecell中使用了OHAttributedLabel并且它工作得很好。所以我不想添加另外一个几乎完全相同的第三部分组件。

提前致谢。

1 个答案:

答案 0 :(得分:2)

我自己通过添加

解决了这个问题
   forgotLabel.catchTouchesOnLinksOnTouchBegan = YES;