استدعاء الإجراءات التي تم الحصول عليها من الزر
سؤال
لدي المتطلبات التالية:
- الحصول على الإجراء المرتبط بـ
NSButton
استخدام: - (SEL)action
- استدعاء الإجراء الذي تم الحصول عليه.
هل يمكننا أداء 2nd pt. عموما نحن ندعو إجراء مثل هذا- [self abc:nil]
مجرد التفكير إذا استطعنا استدعاء الطريقة التي تم الحصول عليها من 2nd Pt. بنفس الطريقة!
المحلول
محاولة:
SEL actionSelector = [button action];
[self performSelector: actionSelector withObject:nil];
نصائح أخرى
الإجراء هو مجرد محدد - اسم الطريقة. قد يكون لأي عدد من الكائنات طريقة بهذا الاسم ، وحتى إذا قام فئة واحدة فقط بتطبيق الطريقة ، فقد يكون لديك أي عدد من مثيلات تلك الفئة. لذلك ، لا يمكنك فقط استدعاء اسم الطريقة ، لأن هذا لا يعبر عن الكائن الذي سيستجيب له. تحتاج إلى كائن يقوم بتنفيذ هذه الطريقة ، وتحتاج إلى إرسال هذه الرسالة بهذا الاسم إلى هذا الكائن.
الكائن الأكثر ترجيحًا الذي تريد إرسال رسالة الإجراء إلى هدف الزر ، لذا احصل على ذلك ، بنفس الطريقة التي حصلت بها على الإجراء ، وإرسال الرسالة إلى هذا الكائن. أو الأفضل من ذلك ، أرسل الزر أ performClick:
رسالة; ؛ إذا كنت ترغب في محاكاة المستخدم النقر فوق الزر ، فهذه هي الطريقة للقيام بذلك.