0

好的,这看起来应该很简单,但我来自 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];

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

4

1 回答 1

0

如果您查看" "的文档setCell:,它会指出:

讨论

使用此方法时要非常小心,因为它会不可挽回地损坏受影响的控件;具体来说,您应该只在 NSControl 子类的初始化程序中使用此方法。

我读这篇文章的方式是,您应该setCell从“”的子类init 方法中调用您的“ NSButton”。换句话说,编写您自己的 NSButton 子类(例如“ ICButton”,用于 InfalibleCoinage),然后将“ setCell”调用填充到那里的 init 方法中。

当我们讨论这个主题时,你究竟想用“ CT_CaptureButtonCell”完成什么,你能在不使用自定义纽扣电池的情况下做到这一点吗?

于 2012-12-09T06:13:40.020 回答