我知道如何在按下按钮后运行代码的唯一方法是使用xCode实际为其创建一个方法。是否可以制作一个if语句,询问是否按下了它?像
这样的东西if(button.ispressed)
{
//code here
}
编辑:if语句将在计划的计时器中,因此将不断检查。
答案 0 :(得分:1)
您可以使用:(id)sender
。
-(IBAction)someAction:(id)sender
{
if(sender == yourButtonInstance)
{
//yourButtonInstance is Pressed.
}
}
答案 1 :(得分:1)
不,因为这违背了event-driven paradigm(花哨的谈话“按下按钮,你会得到一个动作)。要做你所要求的,那么你需要不断检查是否有任何一个屏幕上的按钮被按下了。
你可以实现的最接近的事情是,将所有按钮定位到相同的方法,然后检查谁是调用者。
例如,让我们链接这三个按钮(附有@property
)
[self.button1 addTarget:self action:@selector(weAllGotPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.button2 addTarget:self action:@selector(weAllGotPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.button3 addTarget:self action:@selector(weAllGotPressed:) forControlEvents:UIControlEventTouchUpInside];
然后,在回调方法中,执行以下操作:
- (void)weAllGotPressed:(UIButton*)button
{
if (button == self.button1)
{
// Do something
}
else if (button == self.button2)
{
// Do something else
}
else if (button == self.button3)
{
// Do another thing
}
}
如果您不想使用@property检查UIButton
地址,也可以使用视图标记来识别它们。
答案 2 :(得分:0)
是的,但是你真的应该只针对一个无意触发立即行动的控制来做这件事;例如,您有许多没有处理程序的复选框和一个带处理程序的操作按钮。
确定维持状态的控件的状态;例如复选框和单选按钮;使用state
或UIControl
的方法NSControl
。
如果按钮不记得状态,例如大多数按钮(它们可以配置为按下/推开开关并因此保持状态),则无法确定按下按钮是否没有处理程序来记录事实。
HTH