البرمجة

Trimming NSAttributedString in Swift

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

أحد الطرق الممكنة لتحقيق هذا الهدف هو استخدام دالة تسمى trimmingCharacters(in:) مع الأحرف الفارغة كمعامل لها. ومع ذلك، لا تدعم هذه الدالة التعامل مع NSAttributedString مباشرة. بدلاً من ذلك، يجب أن تقوم بتحويل NSAttributedString إلى NSString لاستخدام هذه الدالة، ثم تحويلها مرة أخرى إلى NSAttributedString بعد التقليم.

فيما يلي كيفية تنفيذ هذه العملية في Swift:

swift
extension NSAttributedString { func trimmingWhitespace() -> NSAttributedString { let trimmedString = self.string.trimmingCharacters(in: .whitespacesAndNewlines) let trimmedAttributedString = NSMutableAttributedString(string: trimmedString) // Copy the attributes from the original NSAttributedString self.enumerateAttributes(in: NSRange(location: 0, length: self.length), options: []) { (attributes, range, _) in trimmedAttributedString.addAttributes(attributes, range: range) } return trimmedAttributedString } }

ثم يمكنك استخدام هذه الدالة مباشرة على NSAttributedString الخاص بك:

swift
let originalAttributedString = NSAttributedString(yourOriginalStringWithImages) let trimmedAttributedString = originalAttributedString.trimmingWhitespace()

باستخدام هذا الكود، ستحصل على NSAttributedString مقتوحة من الفراغات البيضاء في البداية والنهاية دون فقد أو تغيير للصور أو الرموز الأخرى في النص.

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

بالطبع، إليك المزيد من المعلومات حول كيفية تنفيذ هذه العملية بشكل أكثر تفصيلًا:

  1. تمديد NSAttributedString:
    في الكود السابق، قمنا بتمديد NSAttributedString لإضافة دالة تقوم بتقليم الفراغات البيضاء. هذا يجعل الكود أكثر قابلية لإعادة الاستخدام ويمكنك استدعاؤه بسهولة على أي NSAttributedString.

  2. تحويل النص إلى NSString:
    قمنا بتحويل NSAttributedString إلى NSString باستخدام الخاصية string. هذا يسمح لنا باستخدام دالة trimmingCharacters(in:) التي تأتي مع NSString لتقليم الفراغات البيضاء من بداية ونهاية النص.

  3. إعادة إنشاء NSAttributedString:
    بعد تقليم النص، قمنا بإنشاء NSMutableAttributedString جديدة باستخدام النص المقتوم ونسخ السمات النصية (attributes) من NSAttributedString الأصلية إلى النص الجديد باستخدام الدالة enumerateAttributes(in:options:using:).

  4. المحافظة على السمات النصية:
    من خلال استخدام الدالة enumerateAttributes(in:options:using:)، يتم الاحتفاظ بكل السمات النصية (مثل اللون، والخط، والحجم، إلخ) في NSAttributedString الأصلية أثناء عملية النسخ. هذا يضمن أن النص المقتوم يحافظ على تنسيقه الأصلي.

  5. استخدام الدالة:
    بمجرد تنفيذ الامتداد وإضافته إلى مشروعك، يمكنك استخدام الدالة trimmingWhitespace() مباشرة على أي NSAttributedString لتقليم الفراغات البيضاء من بداية ونهاية النص.

  6. المرونة والكفاءة:
    يوفر هذا الحل مرونة وكفاءة في إزالة الفراغات البيضاء من NSAttributedString، مما يتيح لك التعامل مع النصوص المتنوعة بمختلف الأشكال والأحجام دون فقد أو تغيير في السمات النصية.

بهذه الطريقة، يمكنك تحقيق هدفك في تقليم NSAttributedString دون فقدان الصور أو الرموز الأخرى في النص، مما يسهل عملية تنظيف وتنسيق النصوص بطريقة مرنة وفعالة.

مقالات ذات صلة

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

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر