如何通过编程方式触发IBAction方法与通过按钮等?

时间:2012-02-09 22:11:36

标签: objective-c xcode model-view-controller interface-builder nswindow

我可以通过创建IBAction方法并将其连接到IB中的按钮来轻松“做某事”。例如......

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

但是,我不能,为我的生命,通过简单,可调用的方法来确定如何做到这一点......即

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

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

我希望期望这个方法与单击按钮的方式相同......因为它们是相同的...... 但是没有。什么都没发生。 我在这里缺少什么?

2 个答案:

答案 0 :(得分:6)

我并未声明这绝对是最佳答案或正确的方法,但有一种方法可以将以下内容放在-applicationDidFinishLaunching:中:

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

这会导致在runloop的下一次传递时调用它,到那时,之前没有的任何内容现在都已到位。

答案 1 :(得分:4)

根据您尝试做的事情,您可能需要

[buttonObj sendActionsForControlEvents: UIControlEventTouchUpInside];

触发按钮就像触摸按钮一样,并强制执行与其连接的任何操作。

注意:这是我提出this SO question.

时的答案