0

我知道如何在按下按钮后为其运行代码的唯一方法是使用 xCode 实际为它创建一个方法。是否可以做一个 if 语句来询问它是否被按下?就像是

if(button.ispressed)
{
 //code here
}

编辑: if 语句将在预定的计时器中,因此会不断检查。

4

3 回答 3

1

您可以使用:(id)sender.

-(IBAction)someAction:(id)sender
{
     if(sender == yourButtonInstance)
     {
        //yourButtonInstance is Pressed.
     }
}
于 2013-07-15T04:19:48.103 回答
1

不,因为这违背了事件驱动的范式(花哨的说法是“你按下一个按钮,你就会得到一个动作)。要按照你的要求做,那么你需要不断检查屏幕上是否有任何按钮按下。

您可以实现的最接近的事情是,将所有按钮定位到相同的方法,然后检查谁是调用者。

例如,让我们链接这三个按钮(已@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地址,也可以使用视图标签来识别它们。

于 2013-07-15T04:32:35.737 回答
0

是的,但你真的应该只为不打算触发立即动作的控件这样做;例如,您有许多没有处理程序的复选框和一个带有处理程序的操作按钮。

确定保持状态的控件的状态;例如复选框和单选按钮;使用or的方法stateUIControlNSControl

如果按钮不记得状态,例如大多数按钮(它们可以配置为按下/按下开关并因此保持状态),则无法确定按钮是否在没有处理程序记录事实的情况下被按下。

高温高压

于 2013-07-15T04:29:09.550 回答