动态分配类

时间:2013-01-28 04:59:51

标签: objective-c xcode cocoa

是否可以在代码中为对象分配一个类?我正在动态创建一个按钮,为按钮加载图像,我有以下内容:

myButton = [[[NSButton alloc] initWithFrame:NSMakeRect(100,100,50,25)] autorelease];
[myButton setTitle:@"Done"];
[myButton setTarget:self];
[myButton setAction:@selector(mySelector:)];
[myButton setButtonType:NSMomentaryChangeButton];
[myButton setBordered:NO];
[myButton setImage:[NSImage imageNamed:@"myButton.png"]];
[myButton setImagePosition: NSImageOnly];
[[[self window] contentView] addSubview:myButton];

我还有一个NSButton子类(例如MyButtonClass.h / MyButtonClass.m)我想用于按钮,以便它有一个特定的行为,但我不知道如何将该类分配给按钮上面的代码。

这是可能的,还是只能在Interface Builder中完成?

2 个答案:

答案 0 :(得分:0)

您可以使用MyButtonClass代替NSButton

启动按钮

myButton = [[[MyButtonClass alloc] initWithFrame:NSMakeRect(100,100,50,25)] autorelease];

答案 1 :(得分:0)

创建按钮时,不要将它们创建为NSButtons,将它们创建为子类。例如,如果你有一个名为MyButton的NSButton的子类,而不是像:

NSButton *button = [[[NSButton alloc] initWithFrame:frame]autorelease];

你会有类似的东西:

MyButton *button = [[[MyButton alloc] initWithFrame:frame]autorelease];

这种方式按钮将是MyButton的一个实例。