Come ottenere il nome del mittente di un NSButton
-
09-10-2019 - |
Domanda
Ho diversi NSButtons che sono attaccati ad un singolo IBAction. Ho bisogno di differenziare all'interno del metodo tra i diversi pulsanti. Ho provato quanto segue, ma non funziona:
for (int i = 0; i++; i < 7) {
if (sender == [NSString stringWithFormat:@"button%i", i+1])
{
NSLog(@"sender is button %i", i+1);
}
}
Come può questo essere fatto per il lavoro?
Soluzione
-(IBAction)buttonPressed:(id)sender
{
switch ( [sender tag] )
{
case 1:
//blah blah blah
break;
case 2:
//blah blah etc.
break;
}
}
Sono contrario a fare il lavoro per voi, ma ....
sostituire questa riga
if (sender == [NSString stringWithFormat:@"button%i", i+1])
con questa linea
if ([sender tag] == i)
Nota anche che il formato del ciclo for non è valido:
for (int i = 0; i++; i < 7)
s / b:
for (int i = 0; i < 7; i++)
Altri suggerimenti
mittente nell'azione btnClicked è l'oggetto tasto che è stato cliccato. Dal che si dovrebbe essere in grado di ottenere le informazioni necessarie
-(IBAction) btnClicked: (id) sender {
NSLog(@"Button clicked %@", sender);
// Do something here with the variable 'sender'
}
Se si memorizza un valore nella sender.tag
, è possibile determinare il pulsante in questo modo anche
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow