以编程方式触发按钮单击事件?

是否有方法以编程方式激发按钮单击事件?我有一个按钮放在一个 UIView,在一个特定的情况下,我想通过代码点击按钮,而不是手动作为一个用户。在 iOS 开发中这是可能的吗?请提供您的建议,并指导我如何做到这一点。

谢谢。

102115 次浏览

如果您正在谈论一个 UIButton,您可以只调用相同的方法,UIButton 正在调用当它被点击。例如:

[self myButtonsTargetMethod];

为什么不直接执行用户按下按钮时执行的代码呢?

-(void)myMethod
{
// do stuff
}


-(IBAction)myButtonClick:(id)sender
{
[self myMethod];
}


-(void)clickMyButton
{
[self myMethod];
// OR
[self myButtonClick:nil];
}

有点像肯的答案,但更灵活,因为它将保持轨道的按钮实际行动,如果你改变它们或添加一个以上。

[button sendActionsForControlEvents:UIControlEventTouchUpInside];

我也有同样的问题。我本来可以发表评论的,但我的名声还不够高。因此,我将转而发布完整的答案:

[btn setHighlighted:YES];
[btn sendActionsForControlEvents:UIControlEventTouchUpInside];
[btn performSelector:@selector(setHighlighted:) withObject:NO afterDelay:0.25];

这将以编程方式按下按钮并在看似正常的时间内高亮显示。里奇的建议没有起作用,因为按钮只是在不易察觉的时间内突出显示(如果有的话)。

是的,

[_button setHighlighted:YES];
[_button sendActionsForControlEvents:UIControlEventTouchUpInside];
[_button setHighlighted:NO];

但这里的问题是,你将无法看到这些事件,因为它太快了。因此,您可以使用 NSTimer 尝试上面的代码。

NSTimer *quick = [NSTimer scheduledTimerWithTimeInterval:2.5 target:self selector:@selector(MeFirst:) userInfo:nil repeats:NO];

MeFirst 是我创建的方法。