سؤال

لقد قمت بإنشاء فرعية مخصصة من NSCELL مع NSIMAGECELL، وبعض nstextfieldcells، و nspopupbuttoncell.

أنا تهيئة الخلية المنبثقة باستخدام:

    myPopUpCell = [[NSPopUpButtonCell alloc] init];
    [myPopUpCell setBordered:NO];
    [myPopUpCell setAutoenablesItems:NO];
    [myPopUpCell addItemsWithTitles:[NSArray arrayWithObjects:@"Item1", @"Item2", @"Item3"]];

ورسمها في drawInteriorWithFrame:inView:

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

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

المحلول

رسم خلية زر المنبثقة في drawInteriorWithFrame:inView: سوف تفعل ذلك فقط؛ ارسمها، ولكن لا شيء آخر. التعامل مع الأحداث النقر لا علاقة لها بالرسم، لذلك سيتعين عليك القيام ببعض العمل في خلية مخصصة لتفسير أحداث الماوس، وإذا كانوا داخل الإطار الذي تستخدمه للزر المنبثق، قم بتمريرها إلى خلية زر. ابدأ بتكوين الأساليب المدرجة في مستندات Nscell ضمن تتبع الماوس، مثل –trackMouse:inRect:ofView:untilMouseUp:, ، ويجب أن تكون قادرا على معرفة ما هو مطلوب لجعل تصرف خلية الزر بشكل صحيح.

اعتمادا على ما تفعله، قد تجد فعلا أنه من الأسهل رسم سلسلة العنوان بنفسك، واستخدم فقط NSMENU +popUpContextMenu:withEvent:forView:.

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