Wie der Name der Taste in einer Aktion zu bekommen?
Frage
ich eine Schaltfläche mit dem Namen Start habe, und ich möchte in der Methode wissen, dass es nennt, was es Name ist und ich bin nicht wirklich sicher, wie es zu tun. Dies ist die Methode der Schaltfläche Anrufe.
-(IBAction) startMotion: (id)sender {
UIButton * buttonName = (UIButton *) sender;
NSLog(@"Button Name: %@", buttonName.currentTitle);
}
Die NSLog druckt
Button Name: (null)
Lösung 3
Ich hatte die falsche Eigenschaft im Interface Builder.I Verwendung anstelle der Titel Eigenschaft der Schaltfläche Einstellungen Namen Eigenschaft Button im Interface Builder.
Andere Tipps
Sie können den Titel der Schaltfläche gesetzt durch
[b setTitle:@"Start" forState:UIControlStateNormal];
und den Titel zu erhalten (currentTitle schreibgeschützt ist und gleich Null sein kann):
[b currentTitle];
BTW, wenn Sie nur mehrere Tasten unterscheiden möchten, können Sie einfach den Tag-Eigenschaft (ein Integer-Wert) der Tasten.
Überprüfen Sie auch, wenn Sie die Taste angegeben als IBOutlet in Ihrem Viewcontroller Klasse haben, und es ist richtig angeschlossen als Ventil im Interface Builder?
Ich würde lieber setzen einen bestimmten Tag und vergleichen Sie den Tag-Wert, anstatt den Titel der Schaltfläche Lesen, da Sie die Möglichkeit haben, Ihre App zu lokalisieren, wo Schaltfläche Titel möglicherweise anders sein wird.