2010-03-03 16 views

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.

+0

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

+0

Großartig, danke! Ich werde es versuchen, aber das sieht nach dem aus, was ich suche. – Nicsoft

+1

@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

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 ]; 

UIControl reference UIButton reference

Verwandte Themen