6

我可以通过创建IBAction方法并将其连接到IB中的按钮来轻松“做某件事”。例如...如何以编程方式触发IBAction方法与通过按钮等?

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

但是,我不能,的生活,找出如何通过简单,可调用的方法做到这一点...即

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

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

我会预计,这种方法会做点击按钮...因为它们是相同的... 但没有。什么都没发生。 我在这里错过了什么?

+1

您可能过早地称它为可能。尝试从'applicationDidFinishLaunching'或'windowDidLoad'调用它,而不是 – guitarflow 2012-02-09 22:14:40

+0

我已经在' - (void)applicationDidFinishLaunching:(NSNotification *)notification'内尝试过了,但是无济于事。 – 2012-02-09 22:17:13

+1

你不需要做一个单独的方法,只需用'[self popWindowMethod:self]调用IBAction返回方法;' – twilson 2012-02-09 22:17:45

回答

6

我不指出这是断然的最佳答案,或做正确的方式,而是一种方法,工程是摆在-applicationDidFinishLaunching:如下:

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

这也导致在runloop的下一个通道中被调用,到那时,现在没有到位的东西到位。

4

取决于你想做什么,你可能想

[buttonObj sendActionsForControlEvents: UIControlEventTouchUpInside]; 

,如果它已经触及触发按钮,任何操作都连接到它的力量。

注意:这是我询问时的答案this SO question.

+0

不确定...但这听起来很像'[button performClick];',这是我一直在Mac按钮上使用的。 – 2013-11-08 01:25:57

相关问题