Как получить имя отправителя NSButton - PullRequest
2 голосов
/ 20 октября 2010

У меня есть несколько 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 голосов
/ 20 октября 2010
-(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 / б:

for (int i = 0; i < 7; i++)
2 голосов
/ 20 октября 2010

отправитель в действии btnClicked - это объект кнопки, по которому щелкнули.Исходя из этого, вы сможете получить необходимую информацию

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

Если вы сохраните значение в sender.tag, вы также можете определить кнопку таким же образом

...