如何以编程方式触发IBAction方法与通过按钮等?
问题描述:
我可以通过创建IBAction方法并将其连接到IB中的按钮来轻松“做某件事”。例如...如何以编程方式触发IBAction方法与通过按钮等?
-(IBAction)popThat:(id)sndr{ [windy setFrame:eRect display:YES];}
但是,我不能,我的生活,找出如何通过简单,可调用的方法做到这一点...即
-(void) popThatMethod { [windy setFrame:eRect display:YES]; }
-(void) awakeFromNib { [self popThatMethod]; }
我会预计,这种方法会做点击按钮...因为它们是相同的... 但没有。什么都没发生。 我在这里错过了什么?
答
我不指出这是断然的最佳答案,或做正确的方式,而是一种方法,工程是摆在-applicationDidFinishLaunching:
如下:
[self performSelector: @selector(popWindow:) withObject:self afterDelay: 0.0];
这也导致在runloop的下一个通道中被调用,到那时,现在没有到位的东西到位。
答
取决于你想做什么,你可能想
[buttonObj sendActionsForControlEvents: UIControlEventTouchUpInside];
,如果它已经触及触发按钮,任何操作都连接到它的力量。
注意:这是我询问时的答案this SO question.
+0
不确定...但这听起来很像'[button performClick];',这是我一直在Mac按钮上使用的。 – 2013-11-08 01:25:57
您可能过早地称它为可能。尝试从'applicationDidFinishLaunching'或'windowDidLoad'调用它,而不是 – guitarflow 2012-02-09 22:14:40
我已经在' - (void)applicationDidFinishLaunching:(NSNotification *)notification'内尝试过了,但是无济于事。 – 2012-02-09 22:17:13
你不需要做一个单独的方法,只需用'[self popWindowMethod:self]调用IBAction返回方法;' – twilson 2012-02-09 22:17:45