1

我将 URL 添加到 OHAttributedLabel 中的属性字符串(“忘记密码”链接到 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,它运行良好。所以我不想添加另一个几乎完全相同的第三部分组件。

提前致谢。

4

1 回答 1

2

我通过添加自己解决了这个问题

   forgotLabel.catchTouchesOnLinksOnTouchBegan = YES;
于 2013-04-30T04:42:44.797 回答