有没有办法以编程方式触发按钮点击事件?我在UIView中放置了一个按钮,在特定情况下,我想通过代码单击按钮,而不是手动作为用户。 iOS开发有可能吗?请提供您的建议并指导我如何做到这一点。
感谢。
答案 0 :(得分:301)
有点像Ken的答案,但更灵活,因为如果您更改或添加多个按钮,它会跟踪按钮的实际操作。
[button sendActionsForControlEvents:UIControlEventTouchUpInside];
答案 1 :(得分:11)
我遇到了与上述相同的问题。我会发表评论,但我的声誉不够高。所以,我会发布完整的答案:
[btn setHighlighted:YES];
[btn sendActionsForControlEvents:UIControlEventTouchUpInside];
[btn performSelector:@selector(setHighlighted:) withObject:NO afterDelay:0.25];
这将以编程方式点击按钮并将其突出显示一段看似正常的时间。 Richie的建议并没有奏效,因为按钮只是突出显示(如果有的话)一段时间不可察觉的时间。
答案 2 :(得分:5)
为什么不执行用户按下按钮时执行的代码?
-(void)myMethod
{
// do stuff
}
-(IBAction)myButtonClick:(id)sender
{
[self myMethod];
}
-(void)clickMyButton
{
[self myMethod];
// OR
[self myButtonClick:nil];
}
答案 3 :(得分:1)
如果您正在谈论UIButton,您可以调用UIButton在点击时调用的方法。例如:
[self myButtonsTargetMethod];
答案 4 :(得分:0)
是,
[_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是我创造的方法。