سؤال

لقد بدأت في تطوير أول تطبيق الكاكاو الكامل الذي يحتوي على وجهة نظر أود التصرف AMWorkflowView.

الميزات الأساسية التي أود تحقيقها:

  • تحديد المواقع للآراء الفرعية
  • عرض الآراء الفرعية في الحالات الموسعة / المنهارة
  • اختيار متعددة
  • سحب وإسقاط

من أجل التعود على الكاكاو ، بدأت بعادات NSView التي تخدم بشكل رئيسي كحاوية للوجهات الفرعية المخصصة وتعامل مع تحديد المواقع والاختيار المتعدد. كما هي الفئات الفرعية من الفئات الفرعية NSView, وتحتوي على كمية متغيرة من المشاهدات نفسها ، مثل الأزرار والعلامات وقوائم منبثقة ، وبالتالي يمكن أن يكون لها ارتفاعات مختلفة. لقد نجح هذا جيدًا ، ولكن قبل الاستمرار ، أريد أن أتأكد من الحصول على كل شيء أنيق ومرتب وفقًا لنمط MVC.

أظن أنه يوجد بالفعل فصل في الكاكاو يسهل تنفيذ حاوية عرض ، مثل ربما NSCollectionView. يبدو أنه لا توجد طريقة (سهلة) لعرض طرق عرض مختلفة الحجم في NSCollectionView, ، رغم ذلك. هل يجب أن أستمر في تنفيذ العرف الخاص بي NSView (ربما باستخدام NSArrayController للاختيار وفرز الدعم) ، أم أن هناك طرق أفضل للذهاب؟

أي مساعدة هي محل تقدير كبير

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

المحلول

لسوء الحظ ، فإن الإجابة هي عليك أن تدحرج خاصتك. NSCollectionView لا يسمح لعناصر متغيرة الحجم (والتي تستبعد أيضًا الحالات الموسعة/المنهارة).

بالنسبة لعدد محدود من العناصر ، يمكنك إنجاز ذلك بسهولة (تحتاج فقط إلى طريقة عرض حاوية ترتب الآراء الفرعية بشكل صحيح عند مطالبة التخطيط ، فأنت بحاجة إلى التأكد من إعادة وضعك عند تغيير الأمور). بالنسبة للعديد من المشاهدات الفرعية ، ستحتاج إلى أن تكون فعالة قدر الإمكان. يمكن أن يبدأ هذا مع وضع أقل قدر ممكن (تلك "بعد" العرض "بعد" ، على سبيل المثال) ، والحصول على معقد مثل التخزين المؤقت لتمثيل بصري لعرض النموذج الأولي ، ورسم الصور المخزنة مؤقتًا (سريع!) للجميع باستثناء العرض باستثناء العرض. يتم تحريره ، واستخدام/وضع عرض "حقيقي" فقط للعرض الذي يتم تحريره.

يعمل السحب والإفلات كما هو الحال دائمًا ، ولكن لا يوجد أي من الحسابات المذكورة أعلاه للرسوم المتحركة الجميلة NSCollectionView يعطيك. :-) إنه سريع ومُصنوع بشكل جميل بدقة لان جميع المشاهدات الفرعية موحدة (وبالتالي فإن حسابات التخطيط سريعة وبسيطة). بمجرد إضافة أحجام غير منتظمة ، تصبح المشكلة أكثر تعقيدًا.

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

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