好吧,这似乎应该很简单,但我来自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];
那么我错过/不理解什么愚蠢的东西?谢谢。
如果您查看" setCell:
"的文档,它指出:
讨论
请非常小心地使用此方法,因为它可以不可撤销地 损坏受影响的控件;具体来说,你应该只使用它 NSControl 子类的初始值设定项中的方法。
我读到的方法是,你应该从 "NSButton
" 的子类的 init 方法中调用你的"setCell
"。 换句话说,编写你自己的NSButton子类(例如"ICButton
",用于InfalibleCoinage),然后将"setCell
"调用填充到init方法中。
当我们讨论这个主题时,您究竟想用"CT_CaptureButtonCell
"完成什么的大局是什么,你能在不使用自定义按钮单元格的情况下做到这一点吗?