كيف يمكنني تغيير القائمة الرئيسية في الكاكاو؟
-
21-08-2019 - |
سؤال
لدي تطبيق الكاكاو مع نوعين من النوافذ يتطلب كل منهما قائمة رئيسية مختلفة لعرضها.
في بلدي mainmenu.xib لدي الافتراضي mainmenu. في window1.xib لدي window1 و in window2.xib لدي window2 وهو mainmenu.
عندما يكون لديّ النافذة الأولى مفتوحة ، لدي القائمة الافتراضية ، عندما أفتح Window2 أحصل على قائمة.
ومع ذلك ، عندما أعود إلى Window1 ، ما زلت أرى قائمة Window2. كيف أقوم بعمل القائمة المعروضة اتبع نافذة المفتاح؟
المحلول
nsapplication لها طريقة ، - (void)setMainMenu:(NSMenu *)aMenu
. يمكنك تمريره مرجعًا إلى القائمة الصحيحة في وحدة تحكم النافذة المناسبة ، عن طريق التنفيذ - (void)windowDidBecomeKey:(NSNotification *)notification
.
ضع في اعتبارك أنه قد يكون من الأسهل تغيير القوائم الفرعية بدلاً من تبديل القائمة الرئيسية بأكملها ، حيث لن تضطر إلى الحفاظ على نسختين مختلفتين من التطبيق ، والمساعدة ، وغيرها من القوائم التي لن تتغير بين النوافذ .
نصائح أخرى
بشكل عام ، يجب ألا تحل محل القائمة الرئيسية بأكملها في كل مرة. إنه أكثر امتثالًا لإرشادات الواجهة البشرية لمجرد تعطيل أي عناصر قائمة لا تنطبق على النافذة الحالية. وإذا كان لديك حقًا مجموعة مختلفة تمامًا من القوائم في شريط القائمة ، فربما يجب عليك تقسيم هذا الجزء من التطبيق إلى تطبيق منفصل.