3

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

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

如何使它起作用?

4

2 回答 2

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++)
于 2010-10-20T18:54:43.353 回答
2

btnClicked 动作中的发送者是被点击的按钮对象。从那里你应该能够得到你需要的信息

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

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

于 2010-10-20T18:54:08.710 回答