NSOutlineView - لصناعة السيارات في توسيع كافة العقد

StackOverflow https://stackoverflow.com/questions/519751

  •  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];
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top