如何获取NSButton的发件人姓名

时间:2010-10-20 18:42:20

标签: objective-c cocoa-touch nsstring nsbutton sender

我有几个附加到单个IBAction的NSButton。我需要区分不同按钮之间的方法。我尝试了以下方法,但它不起作用:

for (int i = 0; i++; i < 7) {
    if (sender == [NSString stringWithFormat:@"button%i", i+1]) 
    {
        NSLog(@"sender is button %i", i+1);
    }
}

如何才能使其发挥作用?

2 个答案:

答案 0 :(得分:5)

-(IBAction)buttonPressed:(id)sender
{
    switch ( [sender tag] )
    {
    case 1:
    //blah blah blah
    break;

    case 2:
    //blah blah etc.
    break;
    }
}

我不愿意为你做这项工作,但......

替换此行

if (sender == [NSString stringWithFormat:@"button%i", i+1]) 

这一行

if ([sender tag] == i) 

另请注意,for循环的格式无效:

for (int i = 0; i++; i < 7)

S / B:

for (int i = 0; i < 7; i++)

答案 1 :(得分:2)

btnClicked操作中的发件人是单击的按钮对象。从那以后你应该能够获得所需的信息

-(IBAction) btnClicked: (id) sender {
  NSLog(@"Button clicked %@", sender);
  // Do something here with the variable 'sender'
}

如果您在sender.tag中存储了一个值,则可以通过该方式确定按钮