instacart / Nantes

Swift TTTAttributedLabel replacement
Apache License 2.0
1.11k stars 85 forks source link

touchesEnded and thus handleLinkTapped are never executed #79

Open kevinrenskers opened 3 years ago

kevinrenskers commented 3 years ago

I'm not sure why, but in my project the didSelectLink delegate method is never called. It seems that the root cause is that touchesEnded is also never called inside of NantesLabel, only touchesBegan and touchesCancelled.

In my case the label is used within a UIStackView within a UITableViewCell, auto-sizing everything. I set myLabel.attributedText to an instance of NSAttributedString with the .foregroundColor and .font attributes set, and links are added the old-fashioned way via NSMutableAttributedString's addAttribute. The links are styled just fine (via linkAttributes), so they are definitely recognized. Also within touchesBegan I can see that it does find the link and sets activeLink. But.. touchesEnded is never called, so handleLinkTapped is also never executed.

I'm not sure how easy it's going to be to make a minimum reproducible project 😰 But I'll see what I can do!

kevinrenskers commented 3 years ago

As I feared, a minimum project works just fine. I think it's going to be extremely difficult to pinpoint where in my project this bug gets introduced.

kevinrenskers commented 3 years ago

I actually have the same problem with TTTAttributedLabel. Very weird. I'll dig deeper tomorrow.