我知道如何在按下按钮后为其运行代码的唯一方法是使用 xCode 实际为它创建一个方法。是否可以做一个 if 语句来询问它是否被按下?就像是
if(button.ispressed)
{
//code here
}
编辑: if 语句将在预定的计时器中,因此会不断检查。
我知道如何在按下按钮后为其运行代码的唯一方法是使用 xCode 实际为它创建一个方法。是否可以做一个 if 语句来询问它是否被按下?就像是
if(button.ispressed)
{
//code here
}
编辑: if 语句将在预定的计时器中,因此会不断检查。
您可以使用:(id)sender
.
-(IBAction)someAction:(id)sender
{
if(sender == yourButtonInstance)
{
//yourButtonInstance is Pressed.
}
}
不,因为这违背了事件驱动的范式(花哨的说法是“你按下一个按钮,你就会得到一个动作)。要按照你的要求做,那么你需要不断检查屏幕上是否有任何按钮按下。
您可以实现的最接近的事情是,将所有按钮定位到相同的方法,然后检查谁是调用者。
例如,让我们链接这三个按钮(已@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
地址,也可以使用视图标签来识别它们。
是的,但你真的应该只为不打算触发立即动作的控件这样做;例如,您有许多没有处理程序的复选框和一个带有处理程序的操作按钮。
确定保持状态的控件的状态;例如复选框和单选按钮;使用or的方法state
。UIControl
NSControl
如果按钮不记得状态,例如大多数按钮(它们可以配置为按下/按下开关并因此保持状态),则无法确定按钮是否在没有处理程序记录事实的情况下被按下。
高温高压