如何获取NSButton发送者的名称

3

我有几个NSButton按钮,它们都连接到同一个IBAction。我需要在方法内区分不同的按钮。我尝试了以下方法,但是它没有起作用:

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

如何使此功能可用?

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++)

如果有很多按钮,这个过程会变得很冗长,所以我想使用一个for循环来避免这种情况。 - node ninja
我不明白你说格式无效的那部分。 - node ninja
请仅返回翻译后的文本:检查我的答案的最后3行以获取更正的for循环。 - KevinDTimm

2

在btnClicked操作中的发送者是被点击的按钮对象。从那里,您应该能够获取所需的信息。

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接