NSMenuItem الدولة تمكين تسمية ديناميكية والعمل المستهدف

StackOverflow https://stackoverflow.com/questions/1408332

  •  05-07-2019
  •  | 
  •  

سؤال

وأواجه مشكلة مع بلدي القائمة التطبيق. أريد بعض البنود في القائمة إلى أن الرمادي خارج اعتمادا على بعض المتغيرات BOOL.

وبالإضافة إلى ذلك، أريد بعض من بلدي عناصر القائمة للحصول على الأسماء تبعا لبعض المتغيرات BOOL وبالتالي تنفيذ وظائف مختلفة اعتمادا على ما هو اسم عنصر القائمة. هل هذا ممكن؟ كما تستخدم واجهة البناء يمكنك ربط عنصر قائمة إلى طريقة IBAction واحد. من فضلك قل لي كيفية القيام بذلك.

والشكر

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

المحلول

NSMenuValidation بروتوكول .

ويمكنك تنفيذ -validateMenuItem :، الذي يستخدم لتحديد ما إذا كان ينبغي تمكين عنصر قائمة أو تعطيلها. انها دعت لكل عنصر القائمة فقط قبل برزت من القائمة المنبثقة.

نصائح أخرى

نعم. يمكنك تعيين حالة تمكين عنصر القائمة وعنوانه برمجيا. راجع وثائق NSMenuItem. تذكر أن استخدام NSLocalizedString عند الحصول على شكل العنوان.

وبالنسبة للسؤال الثاني. أنت لا تحتاج إلى استخدام واجهة البناء لعقف الهدف / عمل لعناصر القائمة.

ويمكنك استخدام رمز مثل هذا:

NSMenuItem *menuItem; // Set this to your menu item.
// Set the target to an instance of a class which contains the action method.
[menuItem setTarget:targetClass]; 
// Set the action to the (IBAction) method to call.
[menuItem setAction:NSSelectorFromString(@"actionMethod")]; 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top