سؤال

لدي nstableview ملزمة إلى nsarrayController مع عمودين. يرتبط عمود واحد بالكائنات المرتبة لوحدة التحكم في المصفوفة ويعرض سلسلة.

أرغب في عرض صورة في العمود الآخر ، لكن لا يمكنني جعلها تعمل. لقد قمت بسحب nsimagecell إلى العمود وضبط الصورة باليد ، لكنها لن تظهر في وقت التشغيل. لقد تم التحقق من ضعف الصورة والصورة في دليل الموارد الخاص بي.

هل فاتني شيء؟ ماذا يجب أن أفعل لإظهار تلك الصورة؟

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

المحلول

هل تريد ظهور نفس الصورة لكل صف؟ هل هذا هو السبب في أن تضعه "باليد"؟ لذلك ، يمكنك مزج أساليب NstableViewDataSource مع الروابط. الفكرة هي أن عمود السلسلة الخاص بك سيكون مرتبطًا كالمعتاد ، لكن عمود الصور الخاص بك غير ملزم. لديها مجموعة معرفاتها (مثل "ImageColumn"). يمكنك بعد ذلك استخدام NumberOfRowsIntableView: و TableView: ObjectValueversableColumn: الصف: لتوفير عدد كائنات وحدة تحكم المصفوفة (بحيث يحتوي على العدد الصحيح من الصفوف) وببساطة إرجاع صورتك الثابت ل "ImageColumn") ، والعودة إلى خلاف ذلك.

إذا لم تكن الصورة ثابتة (أي ، فأنت تريد استخدامها كمؤشر من نوع ما) ، يمكنك استخدام الطريقة أعلاه (إرجاع بعض القيمة القائمة على الصورة) أو الارتباطات. لاستخدام الارتباطات ، يمكنك إضافة خاصية إلى أي فئة تحتفظ بها وحدة تحكم الصفيف الخاصة بك ، مثل "الحالة" (رقم). ستستخدم بعد ذلك nsvaluetransformer المخصص يقوم بتحويل رقم الحالة إلى صورة مقابلة. سيكون عمودك مرتبطًا بترتيب وحدة تحكم Array. Status ، باستخدام محول القيمة (انظر NSValuetRansformer للحصول على تعليمات للاستخدام - يجب عليك تسجيله ، ثم استخدام اسمه). والنتيجة هي صورة في العمود الخاص بك تتوافق مع حالة معينة.

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