سؤال

لدي NSTableView قائم على العرض ويتم ملؤه من خلال الارتباطات.ترتبط حقول textFields وimageViews الخاصة بي بخصائص objectValue الخاصة بـ NSTableCellView.

إذا كنت أرغب في الحصول على زر تعديل/معلومات في NSTableCellView الخاص بي:

  1. من يجب أن يكون هدف إجراء الزر؟

  2. كيف يحصل الهدف على قيمة الكائن المرتبطة بالخلية التي يوجد بها الزر؟

أرغب في النهاية في عرض نافذة منبثقة/ورقة بناءً على قيمة الكائن.

هل كانت مفيدة؟

المحلول

يمكن أن تكون فئة وحدة التحكم الخاصة بك هي الهدف.للحصول على قيمة الكائن:

- (IBAction)showPopover:(id)sender {
    NSButton *button = (NSButton *)sender;
    id representedObject = [(NSTableCellView *)[button superview] objectValue];
}

أو استخدم فئة فرعية من NSTableCellView, ، واجعل عرض الخلية هو هدف إجراء الزر، واتصل [self objectValue] للحصول على الكائن.

نصائح أخرى

لقد وجدت إجابة إضافية: يبدو أن الإجابة أعلاه تفترض أنك تستخدم روابط في عرض الجدول.نظرًا لأنني مستجد نوعًا ما ، فقد وجدت طريقة للحصول على الزر داخل خلية عرض الجدول. Genacodicetagpre

بهذه الطريقة عند النقر فوق الزر الموجود داخل الصف ، لن تحتاج إلى تحديد الصف.سيعيد القيمة int للصف لمطابقته مع مصدر بيانات في مصفوفة بدون روابط.

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