我有几个连接到单个 IBAction 的 NSButton。我需要区分不同按钮之间的方法内部。我尝试了以下方法,但它不起作用:
for (int i = 0; i++; i < 7) {
if (sender == [NSString stringWithFormat:@"button%i", i+1])
{
NSLog(@"sender is button %i", i+1);
}
}
如何使它起作用?
我有几个连接到单个 IBAction 的 NSButton。我需要区分不同按钮之间的方法内部。我尝试了以下方法,但它不起作用:
for (int i = 0; i++; i < 7) {
if (sender == [NSString stringWithFormat:@"button%i", i+1])
{
NSLog(@"sender is button %i", i+1);
}
}
如何使它起作用?
-(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++)
btnClicked 动作中的发送者是被点击的按钮对象。从那里你应该能够得到你需要的信息
-(IBAction) btnClicked: (id) sender {
NSLog(@"Button clicked %@", sender);
// Do something here with the variable 'sender'
}
如果您在 中存储一个值sender.tag
,您也可以通过这种方式确定按钮