2008-12-08 15 views
15

Zgodnie z Programowaniem kakao dla systemu Mac OS X, wydanie trzecie, na stronie 245 (rozdział 17) zwykle tworzy się widoki w programie Interface Builder. Jednakże możliwe jest utworzyć je w kodzie, a la:Programowe tworzenie elementów sterujących w kakao

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

To wszystko dobrze, ale jak bym się drut powiedział wyloty kontrolki do działań w kodzie? (W sieci .NET jest to prosta sprawa, dodaj delegata ... Mam nadzieję, że jest to równie łatwe w kakao/Obj-C.)

Odpowiedz

25

Można je połączyć za pomocą prostego zadania. Aby kontynuować swój kod z góry:

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

Piękny, dzięki! To jest łatwiejsze niż w .NET. –

11

A jeśli chce się dotrzeć pierwszy responder zamiast konkretnego obiektu:

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

SWIFT:

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

I oczywiście dodać myAction funkcja samodzielnie:

func myAction(sender: NSButton) { 
    println("click!") 
} 
Powiązane problemy