2013-03-10 41 views
1

我有一個按鈕,並希望自己無觸摸地自動啓動它。 這可能嗎?自動消防IBAction

-(IBAction)xxx:(id)sender 
+0

現在你想「開火」嗎?或者你想在一段時間後「開火」,只是一次?或者你想重複解僱?解決方案取決於你想要哪一個。 – rmaddy 2013-03-10 17:51:04

回答

3

我的回答假設你有方法:

- (IBAction)someAction:(UIButton *)sender { 
} 

和你有一個名爲someButton一個實例變量,按鈕的引用。

如果你只需要「火了」,現在,只需調用它:

[self someAction:someButton]; 

如果你需要「火了」一次,但後來,你可以這樣做:

// call it 5 seconds from now 
[self performSelector:@selector(someAction:) withObject:someButton afterDelay:5.0]; 

如果你想反覆點燃它,使用一個計時器:

myTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(buttonTimerFired) userInfo:nil repeats:YES]; 

- (void)buttonTimerFired { 
    [self someAction:someButton]; 
} 
+0

謝謝馬迪:) :) – Dian007 2013-03-10 18:01:55

2

可以像每個常規函數一樣調用動作 - 您可以通過在其他項上運行計時器來執行動作。

+0

你可以給我示例代碼...我使用計時器不工作 – Dian007 2013-03-10 17:12:24

+0

發佈你的計時器代碼,也許有人可以找到你做錯了它。 – Jim 2013-03-10 17:13:22

+0

看一看:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Timers/Timers.html – duDE 2013-03-10 17:16:10

0

您應該使用NSTimer來完成您的工作。

[NSTimer scheduledTimerWithTimeInterval: 0.01f target: self selector: @selector(BtoonMethod) userInfo: nil repeats: NO]; 

-(void)BtoonMethod 
{ 
    // write code for call yor button method 

} 
+0

爲什麼從現在起只用0.01秒就用一個定時器來調用它? – rmaddy 2013-03-10 17:57:28