سؤال

في الإعداد الخاص بي ، لدي nscollectionview من المجلدات المتصلة بـ Mac. بالنسبة لعرض NSCOLLECTIONVIEWITEM ، لدي nsbox مع nstableView داخل سرد محتويات هذا المجلد.

تأتي مشكلتي عند محاولة إضافة/إزالة العناصر إلى NstableView. يبدو أن NSBox يتم تهيئة مرة واحدة ، لذلك لا يوجد سوى واحد nstableView. هذا يعني أنه عندما أرغب في تحديث البيانات الموجودة داخل NstableView ، لا يمكنني الاتصال بـ ReloadData على iboutlet وجعلها تحديث جميع الجداول.

إذا قمت بإنشاء iboutlet في فئة فرعية من NSBox ، فسيكون ذلك على سبيل المثال ، لذلك لا يمكنني تسميته عبر ذلك.

الأقرب الذي جئت هو عن طريق إرفاق @bry catch حول الكود الذي يرجع الكائن في صف في العمود ، يحدث استثناء لأن هذا العنصر لم يعد موجودًا ، لذلك يمكنني الاستيلاء تحديث أن nstableview محددة.

المشكلة في ذلك هي أنه إذا كان العنصر الذي تم إزالته في نهاية الجدول ، أو إذا تمت إضافة عنصر ، فلن يحدث الاستثناء لأنه يمكن أن يرى جميع العناصر الموجودة.

هل كان لدى أي شخص أي خبرة مع nstableView على عرض nscollectionViewitem؟ كيف قمت بتحديث الجداول؟

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

المحلول

ضع NSBox (مع NstableView) في NIB الخاص به. في كل مرة تقوم فيها بإنشاء عنصر عرض مجموعة جديد ، قم بتحميل NIB ، وتعيين NSBox كعرض عرض عرض المجموعة ، وإطلاق NSBox.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top