سؤال

لدي طريقة عرض جدول أضف إليها الأعمدة ديناميكيًا. يجب أن يتم ذلك بهذه الطريقة لأنه لا يمكنني التنبؤ بعدد الأعمدة التي سأحتاجها.

بعض الأعمدة مربعات الاختيار لكن لا يمكنني النقر عليها عندما أقوم بتشغيل طلبي. يتم تعيين العمود ومربع الاختيار لتكون قابلة للتحرير ولكن إذا قمت بالنقر فوق مربع الاختيار ، فلن يتم تعيين الشيك. هل فاتني شيء؟

تحديث

كيف أحاول (أحاول) ضبط الحالة على خانة الاختيار:

- (void)tableView:(NSTableView *)theTableView 
   setObjectValue:(id)theObject 
   forTableColumn:(NSTableColumn *)theColumn 
              row:(int)rowIndex
{
    if (theTableView == resultsTableView) {

        if ([[theColumn identifier] isEqualToString:CHCheckBoxColumnIdentifier]) {

            NSInteger state = [[theColumn dataCell] state];
            if (state == NSOnState) {
                [[theColumn dataCell] setState:NSOffState];
            } else {
            [[theColumn dataCell] setState:NSOnState];
            }

            /*
            NSLog(@"%@", theObject);
            NSLog(@"%@", theColumn);
            NSLog(@"%i", rowIndex);
            */
        }
    }
}
هل كانت مفيدة؟

المحلول

هل الأعمدة الخاصة بك مرتبطة بوحدة تحكم أم أنك تستخدم بروتوكول NSTAPTEDATASOURCE؟ أظن أن الأخير ولكنك ستحتاج إلى تحديد.

الذهاب إلى افتراضي: يتم التعامل مع نقرة على مربع الاختيار بنفس طريقة أي شيء آخر في -tableView:setObjectValue:forTableColumn:row: طريقة. سيكون هدفك هو حالة الزر ...

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