كيفية تعيين نص UITextView ليكون غامقًا وغير قابل للنقر

StackOverflow https://stackoverflow.com//questions/22064380

  •  23-12-2019
  •  | 
  •  

سؤال

لدي HTML التالي في ملف UITextView وترغب في تحويلها إلى ملف UITextView

هو جسدي للمذكرة

<a href="/arc/item/21">food item - more item stuff</a>;`

اسمحوا لي أن أضيف:يظهر حاليًا باللون الأزرق وتحته خط وغير قابل للنقر.أود أن أجعلها بالخط العريض وغير قابلة للنقر.لقد قرأت المستندات بخصوص linkTextAttributes لكن، عدم استخدام هذا، هو أمر خارج عن إرادتي قليلاً ولا أرى حقًا أي طريقة سهلة للتلاعب بهذا.كيف يمكنني فقط عرض الرابط أعلاه بالخط العريض والأسود (وليس الأزرق) والحفاظ على الطبيعة غير القابلة للنقر؟

هل كانت مفيدة؟

المحلول

تحديث (الحل باستخدام UITextView's linkTextAttributes)

self.testTextView.editable = NO;
self.testTextView.selectable = YES;
self.testTextView.userInteractionEnabled = NO;  // workaround to disable link - CAUTION: it also disables scrolling of UITextView content
self.testTextView.dataDetectorTypes = UIDataDetectorTypeLink;
self.testTextView.linkTextAttributes = @{NSFontAttributeName : [UIFont boldSystemFontOfSize:14.0f], // NOT WORKING !?
                                         NSForegroundColorAttributeName : [UIColor redColor]};

...

self.testTextView.text = @"Lorem ipsum http://www.apple.com Lorem ipsum";

كما ترون في التعليقات، لم أتمكن من تعيين خط جديد إلى linkTextAttributes، على الرغم من أن سمة اللون كانت تعمل كما هو متوقع.

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


سابق (حل بديل)

إذا كنت تستخدم Storyboard/xib فتأكد من إلغاء تحديدك الكشف -> الروابط لـ UITextView الخاص بك.يمكنك جعل الارتباط الخاص بك غامقًا عن طريق ضبط خط الحاوية الخاص به على بعض الخطوط الغامقة.إذا كنت تريد دعم أنماط نص/خطوط مختلفة في كائن سلسلة واحد، فيجب عليك حقًا البحث عنه NSAttributedString أو NSMutableAttributedString.

يرى: https://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/classes/NSAttributedString_Class/Reference/Reference.html.

مثال:

UIFont *linkFont = [UIFont fontWithName:@"SomeBoldTypeface" size:12];
NSString *link = @"food item - more item stuff";

NSMutableAttributedString *someString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"is my body for the note %@; let me ad", link]];
[someString addAttribute:NSFontAttributeName value:linkFont range:NSMakeRange(24, link.length)];

UITextView *textView = [[UITextView alloc] init];
textView.attributedText = someString;
...
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top