البرمجة

إنشاء UITextView بروابط نصية في iOS

لتحقيق الهدف المطلوب، وهو إنشاء UITextView غير قابل للتحرير مع نص يحتوي على روابط نصية، يمكنك استخدام UITextView في واجهة المستخدم وتعيين خاصية attributedText لهذا النص. في هذا النص، يمكنك استخدام NSAttributedString لإضافة الروابط.

فيما يلي كيفية تحقيق ذلك باستخدام Swift 3 و Xcode 8:

swift
import UIKit class ViewController: UIViewController { @IBOutlet weak var textView: UITextView! override func viewDidLoad() { super.viewDidLoad() let attributedString = NSMutableAttributedString(string: "Just click here to register") let linkRange = attributedString.mutableString.range(of: "click here") attributedString.addAttribute(.link, value: "http://example.com", range: linkRange) textView.attributedText = attributedString textView.isUserInteractionEnabled = true textView.isEditable = false textView.delegate = self // If you want to handle link taps // Optional: Customize the appearance of the link textView.linkTextAttributes = [ .foregroundColor: UIColor.blue, .underlineStyle: NSUnderlineStyle.single.rawValue ] } } extension ViewController: UITextViewDelegate { func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { // Handle link tap here if needed return true } }

قم بوضع UITextView في واجهة المستخدم الخاصة بك وقم بربطه بـ IBOutlet في ViewController. ثم قم بتعيين textView.attributedText إلى NSAttributedString الذي يحتوي على الروابط كما تريد.

يتم ضبط textView.isUserInteractionEnabled لتمكين تفاعل المستخدم مع الروابط، بينما textView.isEditable يتم ضبطه على false لجعل النص غير قابل للتحرير. يمكنك أيضًا تخصيص المظهر للروابط باستخدام خاصية textView.linkTextAttributes.

وأخيرًا، يمكنك تنفيذ UITextViewDelegate إذا كنت ترغب في التعامل مع تفاعل المستخدم مع الروابط، مثل فتح روابط في المتصفح.

المزيد من المعلومات

بالطبع! دعنا نستكمل المقال بشرح بعض النقاط الإضافية والتفاصيل التقنية المهمة:

من المهم أن نلاحظ أنه في كود السابق، تم استخدام NSMutableAttributedString لإنشاء النص المنسق الذي يحتوي على الروابط. يمكنك استخدام هذا الكائن لتعديل النص بسهولة، مثل إضافة روابط إضافية أو تغيير الأنماط النصية.

بالنسبة للتفاعل مع الروابط، تم تنفيذ UITextViewDelegate ودالة textView(_:shouldInteractWith:in:interaction:). هذه الدالة تتيح لك التحكم في سلوك الروابط عند النقر عليها. على سبيل المثال، يمكنك تنفيذ التوجيه لفتح الروابط في متصفح الويب الافتراضي للمستخدم.

علاوة على ذلك، يمكنك تخصيص خيارات ظهور الروابط باستخدام خاصية linkTextAttributes. يمكنك تغيير اللون ونمط التسطير وغيرها من الخصائص لتناسب تصميم واجهة المستخدم الخاصة بك.

أخيرًا، يجب أن نلاحظ أن الرمز الموجود في الكود المعروض يعمل على نظام iOS 9 والإصدارات الأحدث. لذا، إذا كان هدفك هو دعم إصدارات أقدم من نظام التشغيل، قد تحتاج إلى استخدام أساليب بديلة لإدراج الروابط في UITextView.

باستخدام الأساليب المعروضة، يمكنك الآن إنشاء UITextView غير قابل للتحرير مع روابط نصية في تطبيق iOS الخاص بك بطريقة بسيطة وفعالة. هذا يتيح للمستخدمين الوصول السهل إلى المحتوى المرتبط بمواقع الويب أو الصفحات الأخرى دون الحاجة إلى مغادرة التطبيق.

زر الذهاب إلى الأعلى