6

मैं आईबीएक्शन विधि बनाकर और आईबी में एक बटन से कनेक्ट करके आसानी से "कुछ कर सकता हूं"। उदाहरण के लिए ...एक बटन, इत्यादि के माध्यम से प्रोग्रामिंग रूप से बनाम IBAction विधि को कैसे ट्रिगर करें?

-(IBAction)popThat:(id)sndr{ [windy setFrame:eRect display:YES];} 

हालांकि, मैं नहीं कर सकता, मुझे के जीवन के लिए , यह पता लगाने कैसे

-(void) popThatMethod { [windy setFrame:eRect display:YES]; } 

-(void) awakeFromNib { [self popThatMethod];    } 

एक सरल, प्रतिदेय विधि के माध्यम से ऐसा करने के लिए ... यानी मैं की अपेक्षा करता हूं कि यह विधि बटन पर क्लिक करने जैसा ही करेगी ... क्योंकि वे समान हैं ... लेकिन कोई नहीं। कुछ नहीं हुआ। मुझे यहाँ क्या याद आ रही है?

+1

पूछा से जवाब है। – guitarflow

+0

के बजाय इसे 'applicationDidFinishLaunching' या 'windowDidLoad' से कॉल करने का प्रयास करें। मैंने इसे' - (शून्य) एप्लिकेशनडिडफिनिश लॉन्चिंग: (NSNotification *) अधिसूचना 'के अंदर करने का प्रयास नहीं किया है। –

+1

आपको या तो एक अलग विधि करने की आवश्यकता नहीं है, बस आईबीएक्शन रिटर्निंग विधि को '[self popWindowMethod: self]' के साथ कॉल करें; ' – twilson

उत्तर

6

मैं राज्य नहीं है कि यह स्पष्ट रूप से सबसे अच्छा जवाब है, या सही तरीके से यह करने के लिए है, लेकिन एक दृष्टिकोण है कि काम करता है -applicationDidFinishLaunching: में निम्नलिखित डाल करने के लिए है:

[self performSelector: @selector(popWindow:) withObject:self afterDelay: 0.0]; 

यह करने के लिए यह कारण बनता है Runloop के अगले पास पर बुलाया जाना चाहिए, जो समय पहले जो भी जगह में नहीं था, अब जगह पर है।

4

तुम क्या करने की कोशिश कर रहे क्या इसके आधार पर आप

[buttonObj sendActionsForControlEvents: UIControlEventTouchUpInside]; 

कौन सा बटन से चलाता है जैसे कि वह छुआ गया था, और बलों जो कुछ भी कार्रवाई इससे जुड़े हैं चाहते हो सकता है।

नोट: है कि यह संभव है कि आप इसे बहुत जल्दी बुला हो सकता है जब मैं this SO question.

+0

यकीन नहीं है ... लेकिन यह '[बटन प्रदर्शनक्लिक] के समान लगता है; ', मै मैक बटन पर जो भी उपयोग कर रहा हूं। –

संबंधित मुद्दे