NSOutlineView - لصناعة السيارات في توسيع كافة العقد
-
21-08-2019 - |
سؤال
ولقد حصلت على NSOutlineView
منضم إلى NSTreeController
(إذا كان ذلك يحدث فرقا)، وأود أن توسيع كل عقدة في بلدي -awakeFromNib()
.
وأود أيضا برمجيا تحديد أول طفل من العقدة الأولى في نفس الوقت. هذا النوع من الامور بسيطة مع وجهات النظر الجدول، ولكن الخطوط العريضة لا يتعاونون معي على الإطلاق.
شكرا،
وغني
المحلول
وأود أن توسيع كل عقدة في بلدي -awakeFromNib ().
اقتباس فقرة> واعتبارا من نظام التشغيل Mac OS X 10.5، [outlineView expandItem:nil expandChildren:YES]
.
في الإصدارات السابقة من نظام التشغيل Mac OS X، ستحتاج إلى تكرار من 0 إلى عدد الصفوف، الحصول على هذا البند لكل صف باستخدام [outlineView itemAtRow:row]
، وتخزين تلك العناصر في صفيف، ثم تكرار مجموعة وتمرير كل عنصر إلى أسلوب expandItem:expandChildren:
. (لا يمكنك خلط الحلقات اثنين لتوسيع عنصر وجميع نسله تغيير الفهارس صف من الأشقاء لاحقة، وبالتالي، يجب جمع كل العناصر على مستوى عال أولا، ثم توسيعها مرة واحدة لديك كل منهم. )
وأود أيضا برمجيا تحديد أول طفل من العقدة الأولى في نفس الوقت.
اقتباس فقرة>وعلى الفور بعد ما سبق، فانه سوف يكون الصف 1.
وهناك عرض المخطط التفصيلي هو نوع من عرض جدول، لذلك عليك استخدام أحد الأساليب NSTableView ل: [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:1] byExtendingSelection:NO]
نصائح أخرى
إذا كنت تحمل من مصدر بيانات،
dispatch_async(dispatch_get_main_queue(), ^{
[self.outlineView expandItem:root expandChildren:YES];
});