Pregunta

Tengo varias NSButtons que están conectados a una única IBAction. Necesito para diferenciar dentro del método entre los diferentes botones. He intentado lo siguiente, pero no funciona:

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

¿Cómo se puede hacer para trabajar?

¿Fue útil?

Solución

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

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

Soy reacio a hacer el trabajo por usted, pero ....

reemplazar esta línea

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

con esta línea

if ([sender tag] == i) 

Nota también que el formato de su bucle no es válido:

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

s / b:

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

Otros consejos

remitente en la acción btnClicked es el objeto de botón que se hizo clic. Desde que usted debería ser capaz de obtener la información que necesita

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

Si almacena un valor en el sender.tag, se puede determinar el botón de esa manera también

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top