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

Ios 以编程方式触发按钮单击事件?,ios,objective-c,iphone,Ios,Objective C,Iphone,有没有办法通过编程触发按钮单击事件?我在UIView中有一个按钮,在特定场景中,我希望通过代码单击按钮,而不是作为用户手动单击。在iOS开发中可能吗?请提供您的建议,并指导我如何做到这一点 谢谢。如果您正在谈论UIButton,您可以调用UIButton在点击时调用的相同方法。例如: [self myButtonsTargetMethod]; 为什么不执行用户按下按钮时执行的代码 -(void)myMethod { // do stuff } -(IBAction)myButtonCl

有没有办法通过编程触发按钮单击事件?我在UIView中有一个按钮,在特定场景中,我希望通过代码单击按钮,而不是作为用户手动单击。在iOS开发中可能吗?请提供您的建议,并指导我如何做到这一点


谢谢。

如果您正在谈论UIButton,您可以调用UIButton在点击时调用的相同方法。例如:

[self myButtonsTargetMethod];

为什么不执行用户按下按钮时执行的代码

-(void)myMethod
{
   // do stuff
}

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

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

有点像Ken的答案,但更灵活,因为如果您更改按钮或添加多个按钮,它将跟踪按钮的实际操作

[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是我创建的方法。

不,我的要求不是调用该方法,而是如何以编程方式触发按钮单击事件,而不是通过用户手动单击它。我在UIView中以编程方式创建了一个UIButton,我希望在某个时间间隔后通过程序本身而不是用户自动触发button click事件。不,我的要求不是调用该方法,而是如何以编程方式触发button click事件,而不是用户手动单击该事件。我在UIView中以编程方式创建了一个UIButton,我希望在某个时间间隔后通过程序本身而不是用户自动触发按钮单击事件。如果不合成触摸,这是不可能的。看见但是,您不能使用此方法将应用提交到应用商店,因为它使用私有API。它通常用于调试目的。您没有解释为什么需要模拟触摸而不是仅仅调用方法,但这是迄今为止最简单的方法。您的计时器操作可以调用您想要的任何方法,它调用的方法可以通过更改按钮状态(选中、突出显示等)在UI中提供按钮被按下的反馈。如果这不起作用,那就这样吧。这是否会像实际触摸一样突出显示按钮,如果
按钮。showsTouchWhenHighlighted=YES
?这个答案很好b/c它可以轻松转换为其他控件,如UISwitch(UIControlEventValueChanged)在我的情况下,这比直接调用目标/操作代码要好得多。b/c我希望开关切换!Thx.否如果button.showsTouchWhenHighlighted=YES,则不会高亮显示按钮;(如果需要突出显示,可以执行此操作。[按钮集突出显示:是];[按钮发送操作ForControlEvents:UIControlEventTouchUpInside];[按钮集突出显示:否];而且效果很好。-rrhHello@zaky,如果我只想要动画,而不想要发送动作,我该怎么做?它没有突出显示,只有在当前代码块完成执行后才会绘制。这是一个很好的修复。