Ответ 1
Вы можете связать их с помощью простого назначения. Чтобы продолжить свой код сверху:
[button setTarget: self];
[button setAction: @selector(myButtonWasHit:)];
Согласно 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.)
Вы можете связать их с помощью простого назначения. Чтобы продолжить свой код сверху:
[button setTarget: self];
[button setAction: @selector(myButtonWasHit:)];
И если вы хотите настроить таргетинг на первого ответчика, а не на конкретный объект:
[button setTarget:nil];
[button setAction:@selector(myAction:)];
Swift:
button.target = self
button.action = "myAction:"
И, конечно, добавьте функцию myAction к себе:
func myAction(sender: NSButton) {
println("click!")
}