Wie gehe ich vor, wenn ich programmatisch eine Reihe von Schaltflächen generieren und diese dann IBActions zuordnen möchte? Es ist einfach, wenn ich die Schaltflächen in Interface Builder hinzufüge, aber das kann ich für diesen Fall nicht tun.Programmgesteuertes Erstellen von UIB-Schaltflächen und deren Verknüpfung mit IBAction
16
A
Antwort
31
Die Schaltflächen haben die Methode - (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents
.
Der Code, dies verwenden würde wie folgt aussehen:
UIButton *myButton = [[UIButton alloc] init...];
[myButton addTarget:something action:@selector(myAction) forControlEvents:UIControlEventTouchUpInside];
Dies setzt voraus, dass Ihr IBAction myAction
benannt ist und dass something
ist die Steuerung, für die diese Aktion definiert ist.
6
Erstellen Sie zunächst die Taste:
UIButton * btn;
btn = [ [ UIButton alloc ] initWithFrame: CGRectMake(0, 0, 200, 50) ];
fügt dann eine Aktion:
[ btn addTarget: self action: @selector(myMethod) forControlEvents: UIControlEventTouchDown ];
Dann fügt die Schaltfläche, um einen Blick:
[ someView addSubView: btn ];
[ btn release ];
Verwandte Themen
- 1. Programmgesteuertes Erstellen von NSPopUpButton
- 2. Programmgesteuertes Erstellen von htpasswd
- 3. Erstellen von Verknüpfung mit. NET
- 4. Programmgesteuertes Erstellen der Funktionsspezifikation
- 5. Programmgesteuertes Erstellen eines Projekts
- 6. Programmgesteuertes Erstellen einer Zustandsmaschine
- 7. Erstellen von Baumstruktur aus Kategorien und Unterkategorien und deren Unterkategorien
- 8. Erstellen von Verknüpfung zu Desktop mit Setup und Bereitstellung
- 9. IBOutlet und IBAction
- 10. Programmgesteuertes Erstellen von WPF DataGridTemplateColumn für DataGrid
- 11. Programmgesteuertes Erstellen eines X509-Zertifikats mit OpenSSL
- 12. Programmgesteuertes Erstellen und Binden von Android-Spinnern in MvvmCross
- 13. Programmgesteuertes Aktivieren von NSMenuItem
- 14. Programmgesteuertes Erstellen von Registerkarten für ViewController
- 15. Programmgesteuertes Erstellen von Eclipse-Projekten (kein Plugin)
- 16. WPF/C# - Beispiel für programmgesteuertes Erstellen und Verwenden von Optionsfeldern
- 17. Programmgesteuertes Erstellen von Bildern unter der Medienbibliothek
- 18. Fehlermeldung mit IBAction
- 19. Programmgesteuertes Erstellen eines Menüs DevExpress
- 20. Swift 2 IBAction und Segue
- 21. performSegueWithIdentifier für DidSelectRowAtIndexPath und IBAction
- 22. Erstellen einer created_by-Spalte und Verknüpfung mit Rails?
- 23. Erstellen eines PHP-JSON-Feeds und erfolgreiche Verknüpfung mit JavaScript
- 24. Verknüpfung zum Erstellen von Schnittstellenimplementierungen in NetBeans
- 25. In IBAction:
- 26. Dokumentation von Interfaces und deren Implementierung
- 27. Python, erstellen Verknüpfung mit zwei Pfaden und Argument
- 28. Listen von Funktionen und deren Ausführung Erlang
- 29. Speichern von Ganzzahlen in einer IBAction und Weitergabe an eine andere IBAction
- 30. Qt Verknüpfung mit benutzerdefiniertem Symbol erstellen
Wenn Sie einen Selektor für einen UIButton angeben, müssen Sie eine Methode mit einem einzigen Argument benennen, die ausgewählte Schaltfläche id? Was würde passieren, wenn ich eine Methode ohne Argumente angeben würde? – mmccomb
Großartig, danke! Ich werde es versuchen, aber das sieht nach dem aus, was ich suche. – Nicsoft
@mattmccomb: Aus der Dokumentation: "Die Aktionsnachricht kann optional den Sender und das Ereignis als Parameter in dieser Reihenfolge enthalten." Sie können eine Methode mit null, ein oder zwei Argumenten als Aktion haben. Vergessen Sie aber nicht, am Ende des Aktionsnamens für jedes Argument den folgenden Code hinzuzufügen: – mrueg