Программное создание элементов управления в Cocoa

Согласно Cocoa Программирование для Mac OS X, 3rd Edition, на стр. 245 (глава 17), вы обычно создаете представления в Interface Builder. Однако их можно создать в коде, a la:

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

Все хорошо и хорошо, но как я могу подключить указанные контроллеры к действиям в коде? (В .NET это непростая задача: добавьте делегат... Im надеется, что это так легко в Cocoa/Obj-C.)

Ответы

Ответ 1

Вы можете связать их с помощью простого назначения. Чтобы продолжить свой код сверху:

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

Ответ 2

И если вы хотите настроить таргетинг на первого ответчика, а не на конкретный объект:

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

Ответ 3

Swift:

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

И, конечно, добавьте функцию myAction к себе:

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