سؤال

لقد خلق فئة فرعية من NSView إلى رسم صورة نمط:

@interface CePatternView : NSView
{
    NSImage*    image;
    id      observableObjectForImage;
    NSString*   keyPathForImage;
}

@end

لقد نفذت التالية لفضح الارتباطات:

+ (void)initialize
{
    // Expose the "image" binding to IB.
    [self exposeBinding:@"image"];  
}

- (Class)valueClassForBinding:(NSString *)binding
{
    if([binding isEqualToString:@"image"])
        return [NSImage class];
    return nil; // Unknown binding
}

للأسف ، صورة ملزمة لا تظهر في واجهة البناء.

هل يجب علي إنشاء IBPlugin لفضح الارتباطات في واجهة باني ؟ التي يبدو الطريق مبالغة العرف يرى أن لا خطة لإعادة استخدامها.

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

المحلول

الجواب على العنوان:لا يمكنك ربط عرض مخصص دون IB plug-in (من يفعل ذلك في التعليمات البرمجية).
جواب السؤال في السؤال الجسم:نعم, كنت بحاجة IB المكونات في فضح ملزمة في IB.

الكود لا يعمل داخل واجهة البناء إلا إذا وضعت في واجهة البناء ، exposeBinding: رسالة التعليمات البرمجية الخاصة بك.لذلك تحتاج إلى وضع في واجهة البناء.وهذا يعني أن كتابة IB في المكونات.

أيضا, IB الإضافات ليست نفس القديم IB لوحات.الإضافات تتطلب IB 3 و هي أسهل بكثير لإنشاء.لوحات تتطلب IB 2 و كانت مؤلمة لخلق.

نصائح أخرى

أنا ببساطة لا بد لي تحكم كائن إلى كائن العرض باستخدام مختلف القياسية الملزمة (أقول تلميح) ، ثم تحرير XIB الملف باستخدام محرر نص وغيرت XML يدويا.

بعد ذلك ملزمة يعمل بشكل صحيح حتى يظهر في واجهة البناء بشكل صحيح التمهيد!

لا يمكنك استخدام الأسلوب

bind:toObject:withKeyPath:options:

إنشاء الخاصة بك ملزمة برمجيا.أعتقد أن لديك لإنشاء IB لوحة للحصول على روابط تظهر في واجهة البناء ، ولكن لمرة واحدة فئة لا تنوي إعادة لم يكلفوا أنفسهم.

إذا كان يمكنك القيام به إدارة الارتباطات يدويا سوف توفر على نفسك الكثير من الوقت.خلق العرف IB لوحات الكثير من العمل مقارنة مع بضعة أسطر من دليل ملزم رمز.ولكن إذا كانت احتياجاتك تتطلب IB مخصص لوحة ثم أود أن تبدأ بمراجعة ما NSView فرعية يتطلب الترميز الحكيم.مكان عظيم للبدء في البحث كروفورد الموقع على روابط:

http://homepage.mac.com/mmalc/CocoaExamples/controllers.html

لقد استعملت الكثير على مدى السنوات القليلة الماضية ، ساعد الكثير مع IB مخصص لوحة الكائنات مع ملزم في القضايا العامة.هناك مثال على موقعه على وجه التحديد تفاصيل مخصص NSView مع العرف الارتباطات.

شيء آخر أن نلاحظ أن عرض مخصصة أيضا أن العمل في بناء واجهة البيئة.هناك عدد قليل من الإصلاحات الصغيرة التي تحتاج إلى أن توضع في مكانها في روابط المدونة في عهدك NSView الكائن بحيث وظائف يربط بشكل صحيح في واجهة البناء.هذه التفاصيل هي كما لاحظت في كروفورد الموقع:

http://homepage.mac.com/mmalc/CocoaExamples/controllers.html#ibBindings

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