NSButton في NSTableCellView:كيفية العثور على قيمة الكائن المطلوب؟
-
27-10-2019 - |
سؤال
لدي NSTableView قائم على العرض ويتم ملؤه من خلال الارتباطات.ترتبط حقول textFields وimageViews الخاصة بي بخصائص objectValue الخاصة بـ NSTableCellView.
إذا كنت أرغب في الحصول على زر تعديل/معلومات في NSTableCellView الخاص بي:
من يجب أن يكون هدف إجراء الزر؟
كيف يحصل الهدف على قيمة الكائن المرتبطة بالخلية التي يوجد بها الزر؟
أرغب في النهاية في عرض نافذة منبثقة/ورقة بناءً على قيمة الكائن.
المحلول
يمكن أن تكون فئة وحدة التحكم الخاصة بك هي الهدف.للحصول على قيمة الكائن:
- (IBAction)showPopover:(id)sender {
NSButton *button = (NSButton *)sender;
id representedObject = [(NSTableCellView *)[button superview] objectValue];
}
أو استخدم فئة فرعية من NSTableCellView
, ، واجعل عرض الخلية هو هدف إجراء الزر، واتصل [self objectValue]
للحصول على الكائن.
نصائح أخرى
لقد وجدت إجابة إضافية: يبدو أن الإجابة أعلاه تفترض أنك تستخدم روابط في عرض الجدول.نظرًا لأنني مستجد نوعًا ما ، فقد وجدت طريقة للحصول على الزر داخل خلية عرض الجدول. Genacodicetagpre
بهذه الطريقة عند النقر فوق الزر الموجود داخل الصف ، لن تحتاج إلى تحديد الصف.سيعيد القيمة int للصف لمطابقته مع مصدر بيانات في مصفوفة بدون روابط.