سؤال

لقد واجهت للتو مشكلة أعرفها بالفعل من لغات/أطر البرمجة الأخرى ....عندما ينقر المستخدم على زر معين على لوحة المفاتيح، فإنه يقوم بنفس الإجراء الذي يحدث عند الضغط على زر معين في واجهة المستخدم الرسومية.(يطلق بعض الرجال على هذه "الاختصارات" ؛D)

لإعطاء المستخدم ردود فعل بصرية، أرغب في "النقر" على الزر برمجيًا بدلاً من استدعاء نفس الوظائف التي يتم استدعاؤها عند النقر فوق الزر.

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

تعذر العثور على طريقة في NSButton أو ما شابه ذلك تبدو صحيحة.أنا متأكد من أنكم يا رفاق يمكن أن تعطيني بعض التوجيه!

الأفضل وشكرا مقدما

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

المحلول

يمكنك فقط أن ترسل performClick: إلى الزر.سوف يسلط الضوء على نفسه، ويرسل عمله إلى هدفه، ثم يلغي تسليط الضوء على نفسه.

[self.someButton performClick:self];

إذا كنت تريد حقًا تمييز الزر وإلغاء تمييزه يدويًا، فيمكنك استخدام highlight: طريقة.

[self.someButton highlight:YES]; // button appears pressed
[self.someButton highlight:NO]; // button appears unpressed
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top