使用(id)发件人从按钮获取信息

时间:2009-12-25 23:14:33

标签: iphone objective-c button

所以,这很简单,但我不知道该怎么做。要从按钮获取标题,您可以使用:

NSString *title = [sender titleForState:UIControlStateNormal];

但是,有没有办法从按钮中获取其他信息,例如“标签”或“提示”?

如果没有,我希望能够在按下不同的按钮时执行不同的操作。所以,有一个“添加1”按钮,一个“添加2”按钮等,我同样的“动作”做一些略有不同的事情。这是通过“If”语句解决的,但我不确定如何进行比较。 (假设按钮标题是“WIN”):

if (title == @"WIN")

不起作用,我该怎么做比较?

(我也尝试过:

NSString *compare = [[NSString alloc] initWithFormat:@"WIN"];
if (title == compare)
{
do something
}

2 个答案:

答案 0 :(得分:4)

您应该始终使用isEqualToString比较字符串:

if ([title isEqualToString:@"WIN"])

有时使用==运算符正确比较字符串,例如比较常量字符串时,不应在Objective-C(或Java)中使用==进行字符串比较。

如果使用==与字符串进行比较,则会比较它们的内存地址。如果要将字符串设置为某个常量,那么==将为真。如果它们是相同的字符串,但是内存地址不同,则==将为false。

在像Python这样的语言中,==会超载,所以你得到了你所期望的行为。

答案 1 :(得分:1)

您可以在紧要关头使用的另一个选项是设置按钮的tag属性(在IB或代码中),然后检查

if (sender.tag == 69) {//one button code} else {other button code}