以编程方式在Cocoa中创建控件

时间:2008-12-08 15:52:22

标签: objective-c cocoa controls

根据 Cocoa Programming for Mac OS X,3rd Edition ,第245页(第17章),您通常会在Interface Builder中创建视图。但是,可以在代码中创建它们,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中,这是一件容易的事;添加一个委托......我希望它在Cocoa / Obj-C中同样容易。)

3 个答案:

答案 0 :(得分:25)

您可以使用简单的作业连接它们。要继续上面的代码:

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

答案 1 :(得分:11)

如果您想要定位第一个响应者而不是特定对象:

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

答案 2 :(得分:1)

夫特:

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

当然,将myAction功能添加到自己:

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