سؤال

أحاول إنشاء زر منبثقة يعرض دائمًا A + كصورة وعند النقر فوقه ، تنبثق قائمة سياق تتيح لك تحديد نوع الكائن الذي تريد إضافته. هل هناك على أي حال للقيام بذلك باستخدام nspopupbutton؟ لقد رأيت في المواصفات لـ nspopupbutotn أن الطريقة لا يكون لها أي تأثير ، لذا يبدو أن هذا من المحتمل ألا يعمل باستخدام هذا الفصل. هل هذا صحيح؟

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

المحلول

نعم ، المظهر المرئي لـ NSPopUpButton خطأ لما تريد.

ما تريده هو منتظم NSButton مع قائمة مرفقة. في Builder Interface ، قم بمسح العنوان ، وقم بتعيين الإطار إلى Squar NSAddTemplate.

ثم إنشاء NSPopUpButton, ، قم بتعيينه على "سحب لأسفل" ، ومخفي ، وتوافقه/ضبط حجمه إلى أسفل NSButton.

وأخيرا ، الاتصال performClick: في ال NSButton إلى performClick: على ال NSPopUpButton.

لن يتعامل مع النقر على الزر ؛ لذلك سيكون عليك كتابة بعض التعليمات البرمجية لاستخدام (غير السحب) NSPopUpButtonCell.

نصائح أخرى

لماذا لا تستخدم فقط nspopupbutton؟ لا يبدو استخدام زريان لأداء مهمة واحدة صحيحًا بالإضافة إلى أنه ذكر لا يتصرف بالطريقة العادية فيما يتعلق بالاحتفاظ بالزر.

للحصول على زر popup يعمل كيف تحب ... قم بتعيينه ليكون نوعًا مسجلاً. لا تعطي زر المنبثقة نفسه أي اسم أو صورة. إذا لم يكن للزر المنبثق اسمًا أو صورة ، فسيصبح عنصر القائمة الأول عنوان الزر. يمكن أن تحتوي عناصر القائمة على صور ، لذا لا تمنح عنصر القائمة الأول أي عنوان ، فقط قم بتعيين صورته وهذه هي الصورة التي ستراها على الزر المنبثق. لبقية عناصر القائمة ، فقط أضفها كالمعتاد بعد عنصر القائمة الأول. لاحظ أنه إذا قمت بتغيير عناصر القائمة برمجيًا في الكود ، فقط تأكد من ترك عنصر القائمة الأول في براعة وسيكون كل شيء على ما يرام. أفعل هذا في عدد قليل من طلباتي دون مشكلة.

المفتاح هو الاستخدام NSPopUpButtonCell's setUsesItemFromMenu:. تتضمن مستندات Apple مثالًا على كيفية استخدام هذا.

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

إذا لم تكن واضحًا بعد ، فانتقل إلى الفيديو التالي مرة واحدة ، فسيجعلك بالتأكيد تفهمها.

يوضح هذا البرنامج التعليمي كيفية إنشاء عنصر شريط أدوات (NstoolBarItem) مع قائمة منسدلة لـ Nstoolbar في Builder Interface: نهاية لهذه الغاية

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