以编程方式创建NSButton并设置自定义NSButtonCell

时间:2012-12-09 00:57:01

标签: objective-c macos nsbutton nsbuttoncell

好吧,这看起来应该很简单,但我来自iOS,而且我必须错过一些非常明显的东西。所以我有一个NSButtonCell的自定义子类。如果我在IB中创建NSButton并在IB中分配NSButtonCell,它就没有问题。

但是,我需要以编程方式创建此按钮。我看了几个例子,并在awakeFromNib中有以下内容,但是,它创建了一个看起来像常规按钮,下面是我的自定义按钮单元(我可以告诉我单击按钮时)。

NSButton* button = [[NSButton alloc] initWithFrame:NSMakeRect(100, 100, 60, 30)];
CT_CaptureButtonCell* captureCell = [[CT_CaptureButtonCell alloc] init];
[button setCell:captureCell];
[captureCell release];
[self.view addSubview:button];

那么我错过/不理解的是什么蠢事?感谢。

1 个答案:

答案 0 :(得分:0)

如果查看documentation for "setCell:",请说明:

  

讨论

     

请谨慎使用此方法,因为它可以不可逆转地使用   损害受影响的控件;具体来说,你应该只使用它   NSControl子类的初始值设定项中的方法。

我读到这个的方式是你应该在中为在{/ 1}}子类的init方法中调用“setCell”。换句话说,编写自己的NSButton子类(例如“NSButton”,用于InfalibleCoinage),然后将“ICButton”调用填充到那里的init方法中。

虽然我们正在研究这个主题,但是你正在尝试用“setCell”完成什么的大局是什么?你可以不使用自定义按钮单元吗?