3

我有一个小的 iPhone 应用程序,我在其中创建了一个具有某些功能的按钮。我的问题是,如何在不实际按下它的情况下调用此按钮?

任何帮助,将不胜感激!

谢谢

4

3 回答 3

4

如果要激活按钮连接到的任何目标,可以调用:

[button sendActionsForControlEvents:UIControlEventTouchUpInside];

(TouchUpInside 是您通常会将按钮操作连接到的事件)。这样,如果为任何按钮(例如调试)添加或更改了其他目标,则不必更改代码。

这个方法在 UIControl 上,UIButton 继承自它,这就是为什么你乍一看可能忽略了它的原因......

于 2009-08-28T02:42:24.220 回答
2

让您的按钮事件调用一个函数。您也可以自己手动调用该函数。

例子:

- (void) btnFunction {
  NSLog (@"test");
}

...

UIButton *btn1 = [UIButton buttonWithType:UIButtonRoundedRect];
// other code to set up button goes here
[btn1 addTarget:self action:@selector(btnFunction) forControlEvents:UIControlEventTouchUpInside];

您也可以自己调用该函数:

[self btnFunction];
于 2009-08-27T16:09:48.237 回答
1

你的按钮不应该有功能,它应该只是向它的目标发送一条消息(或者调用一个方法,或者调用一个函数......)。

您可以自行将该消息发送给该目标。

例如,您按钮的目标插座连接到控制器上的 IBAction。IBAction 只是以下形式的一种方法:

- (void) doSomething:(id)sender

在您自己的代码中执行以下操作:

[controller doSomething:self];

这与让您的按钮执行此操作完全相同。

于 2009-08-27T16:14:19.287 回答