2008-12-08 78 views
15

根據適用於Mac OS X的可可編程,第3版,第245頁(第17章),通常您將在Interface Builder中創建視圖。然而,也可以在代碼中創建它們,一拉:以可編程方式在可可中創建控件

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中同樣容易。)

回答

25

您可以使用簡單的賦值將它們連接起來。從上面繼續代碼:

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

美麗,謝謝!這實際上比在.NET中更容易。 – 2008-12-08 16:49:48

11

如果你想指定的第一個響應者,而不是一個特定的對象:

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

斯威夫特:

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

當然加myAction功能自我:

func myAction(sender: NSButton) { 
    println("click!") 
} 
相關問題