Xin chào các bạn, hôm nay mình sẽ hướng dẫn các bạn cách để chèn đường link có thể click để xử lý 1 action vào trong 1 đoạn text tương tự như hình dưới đây (Như hình dưới là đoạn: “Bằng việc đăng ký, bạn đồng ý với Điều khoản sử dụng và Chính sách bảo mật của chúng tôi.”).

1. Cách giải quyết
Đầu tiên khi mới nhìn vào giao diện, chúng ta có thể sử dụng UILabel và NSAttributedString để tạo thật dễ dàng. Nhưng vấn đề khác sẽ nảy sinh, làm sao để có thể thực hiện 1 action khi tap vào phần text được gạch chân vì UILabel không hỗ trợ để chúng ta có thể dễ dàng làm được việc đó. Các bạn có thể chia đoạn text trên thành nhiều phần nhỏ và sử dụng UIButton để bắt các action, nhưng chỉ khả thi với đoạn text ngắn và không bị xuống dòng.
Vì thể để giải quyết vấn đề trên ta sử dụng một control khác trong UIKit có thể giải quyết tất cả các vấn đền trên đó là UITextView. UITextView có hỗ trợ attributedText để chúng ta có thể dễ dàng làm giao diện giống như trên và UITextViewDelegate có hỗ trợ chúng ta sự kiện khi chúng ta tap vào 1 đường link cụ thể trong đoạn text đó.
2. Cách thực hiện
Chúng ta tạo một project, kéo một TextView vào Main.storyboard và ánh xạ vào ViewController:

Tiếp theo chúng ta tạo một extention để set link cho NSMutableAttributedString:
Sau đó chúng sẽ set link cho TextView và bắt sự kiện tap ở UITextViewDelegate:
Và đây là kết quả, chúng ta đã tạo ra một đoạn text có chưa link và có thể tương tác với link:

Cám ơn các bạn đã theo dõi bài viết. Đây là source code các bạn có thể tham khảo: https://github.com/laptrinh0kho/TextViewClickableLink