2008-12-08 5 views
15

Selon Cocoa Programmation pour Mac OS X, 3e édition, à la page 257 (chapitre 17), vous créerez généralement des vues dans Interface Builder. Cependant, il est possible de les créer dans le code, à la:Création de contrôles par programmation dans Cocoa

NSView *superview = [window contentView]; 
NSRect frame = NSMakeRect(10, 10, 200, 100); 
NSButton *button = [[NSButton alloc] initWithFrame:frame]; 
[button setTitle:@"Click me!"]; 
[superview addSubview:button]; 
[button release]; 

C'est bien beau, mais comment pourrais-je en fil de lesdits points de vente de contrôle aux actions dans le code? (En .NET, c'est une chose facile, ajoutez un délégué ... J'espère qu'il est également facile dans Cocoa/Obj-C.)

Répondre

25

Vous pouvez les câbler en utilisant une simple affectation. Pour continuer votre code d'en haut

[button setTarget: self]; 
[button setAction: @selector(myButtonWasHit:)]; 
+2

Magnifique, merci! C'est en fait plus facile que dans .NET. –

11

Et si vous souhaitez cibler le premier intervenant plutôt qu'un objet particulier:

[button setTarget:nil]; 
[button setAction:@selector(myAction:)]; 
1

Swift:

button.target = self 
button.action = "myAction:" 

Et bien sûr ajouter MonAction fonction à soi-même:

func myAction(sender: NSButton) { 
    println("click!") 
} 
Questions connexes