الاختلافات بين nstableview و nscolletview
-
11-09-2019 - |
سؤال
أحاول أن أقرر أي طريق لأخذ تطبيق تطبيق Snow Leopard الخاص بي. أولا، يجب أن مقدمة مع الاختلافات الواضحة:
NSTableView
يمكن أن يكون لديك أعمدة متعددة من البيانات لتمثيل أجزاء مختلفة من نفس عنصر "البيانات (صف) حيث NSCollectionView
يمكن عرض شبكة من البيانات أيضا، ولكن كل صف + كومبو عمود هو عنصر خاص به. لأغراضي، افترض أنني أتعامل مع عمود واحد.
بقدر ما أستطيع أن أقول،
NSCollectionView
البنودNSView
يجب أن يكون كل شيء من نفس الأبعاد. أيضا، على عكسNSTableView
, ، يتم نسخ عناصر CollectionView إلىNSCollectionView
بدلا من توفيرها حسب الحاجة من قبلdataSource
(أنا غير مؤكد عن هذا، يرجى تصحيح لي إذا كنت مخطئا).NSTableView
الاستخداماتNSCell
S إذا قررت تخصيص عرض الصفوف. كماNSCell
ليس كذلكNSResponder
, ، كيف يمكن لأحداث التعامل مع أحد الأحداث (إذا أردت إضافة نوع من الملحقات إلى الخلية، مثل كيفية عمل الأسهم في iTunes (على الرغم من أن iTunes كربون). لقد رأيت بعضNSCell
فئة فئة في IB التي يبدو أنها تعادلNSControl
إخوة، ولكن ماذا لو كنت أريد أن يكونMySweetView
الكائنات فيNSCell
?).يبدو أن كلاهما يعملان حول الشيء نفسه مع احترام الارتباطات، صحيح؟
أخيرا،
NSCollectionView
يبدو أن اللعب بشكل جيد مع الرسوم المتحركة لعناصرها (لإعادة ترتيب العناصر، أو تصفيةها على سبيل المثال). علبةNSTableView
هل هذا مع صفوفه؟
أي شيء آخر يجب أن أعتبر؟
المحلول
- الفرق هنا هو أنه في عرض الجدول، كل صف هو عنصر واحد، وتظهر الأعمدة جوانب مختلفة (خصائص) من هذا البند. في عرض المجموعة، كل تقاطع عمود الصف هو عنصر واحد.
- لم أفعل هذا، ولكن حاول التنفيذ
tableView:didClickTableColumn:
في الجدول عرض المندوب. هذه الطريقة جديدة في 10.6. سوف تحتاج إلى الحصول على[NSApp currentEvent]
, ، وربما تمريرها إلى طريقة في خلية العمود. - مع عرض الجدول، يمكنك ربط العمود؛ لا ترتبط العرض (وليس لتوفير المحتوى، على أي حال؛ أنت تقوم بربط طريقة العرض للأشياء مثل فهارس الاختيار). مع عرض مجموعة، لا توجد أعمدة (انظر # 1)، لذلك أنت دائما ترتبط العرض.
- رقم.
نصائح أخرى
Fwiw، nstableview هو جزء قديم جدا من AppKit، وهو Crufty قليلا.
إذا كنت جديدا في المنصة، فسوف أوصي بالحصول على رأسك حول NscollectionView أولا.