我在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并且它工作得很好。所以我不想添加另外一个几乎完全相同的第三部分组件。
提前致谢。
答案 0 :(得分:2)
我自己通过添加
解决了这个问题 forgotLabel.catchTouchesOnLinksOnTouchBegan = YES;