كيفية تقليد عرض سير العمل من Automator؟
-
24-09-2019 - |
سؤال
لقد بدأت في تطوير أول تطبيق الكاكاو الكامل الذي يحتوي على وجهة نظر أود التصرف AMWorkflowView
.
الميزات الأساسية التي أود تحقيقها:
- تحديد المواقع للآراء الفرعية
- عرض الآراء الفرعية في الحالات الموسعة / المنهارة
- اختيار متعددة
- سحب وإسقاط
من أجل التعود على الكاكاو ، بدأت بعادات NSView
التي تخدم بشكل رئيسي كحاوية للوجهات الفرعية المخصصة وتعامل مع تحديد المواقع والاختيار المتعدد. كما هي الفئات الفرعية من الفئات الفرعية NSView
, وتحتوي على كمية متغيرة من المشاهدات نفسها ، مثل الأزرار والعلامات وقوائم منبثقة ، وبالتالي يمكن أن يكون لها ارتفاعات مختلفة. لقد نجح هذا جيدًا ، ولكن قبل الاستمرار ، أريد أن أتأكد من الحصول على كل شيء أنيق ومرتب وفقًا لنمط MVC.
أظن أنه يوجد بالفعل فصل في الكاكاو يسهل تنفيذ حاوية عرض ، مثل ربما NSCollectionView
.
يبدو أنه لا توجد طريقة (سهلة) لعرض طرق عرض مختلفة الحجم في NSCollectionView
, ، رغم ذلك. هل يجب أن أستمر في تنفيذ العرف الخاص بي NSView
(ربما باستخدام NSArrayController
للاختيار وفرز الدعم) ، أم أن هناك طرق أفضل للذهاب؟
أي مساعدة هي محل تقدير كبير
المحلول
لسوء الحظ ، فإن الإجابة هي عليك أن تدحرج خاصتك. NSCollectionView
لا يسمح لعناصر متغيرة الحجم (والتي تستبعد أيضًا الحالات الموسعة/المنهارة).
بالنسبة لعدد محدود من العناصر ، يمكنك إنجاز ذلك بسهولة (تحتاج فقط إلى طريقة عرض حاوية ترتب الآراء الفرعية بشكل صحيح عند مطالبة التخطيط ، فأنت بحاجة إلى التأكد من إعادة وضعك عند تغيير الأمور). بالنسبة للعديد من المشاهدات الفرعية ، ستحتاج إلى أن تكون فعالة قدر الإمكان. يمكن أن يبدأ هذا مع وضع أقل قدر ممكن (تلك "بعد" العرض "بعد" ، على سبيل المثال) ، والحصول على معقد مثل التخزين المؤقت لتمثيل بصري لعرض النموذج الأولي ، ورسم الصور المخزنة مؤقتًا (سريع!) للجميع باستثناء العرض باستثناء العرض. يتم تحريره ، واستخدام/وضع عرض "حقيقي" فقط للعرض الذي يتم تحريره.
يعمل السحب والإفلات كما هو الحال دائمًا ، ولكن لا يوجد أي من الحسابات المذكورة أعلاه للرسوم المتحركة الجميلة NSCollectionView
يعطيك. :-) إنه سريع ومُصنوع بشكل جميل بدقة لان جميع المشاهدات الفرعية موحدة (وبالتالي فإن حسابات التخطيط سريعة وبسيطة). بمجرد إضافة أحجام غير منتظمة ، تصبح المشكلة أكثر تعقيدًا.
خلاصة القول: إذا كنت بحاجة إلى طرق عرض متغيرة الحجم ، NSCollectionView
لن تعمل وستحتاج إلى لفك أو العثور على رمز مشترك لشخص آخر ، لكن الأداء والرسوم المتحركة الجميلة لن يكون سهلاً.