关于如何指示以编程方式创建的NSSegmentedControl
使用NSSegmentedCell
的子类实例,我感到有点难过。
如果我想在使用IB构建的NSSegmentedCell
上使用子类NSSegmentedControl
,那么就像执行以下操作一样简单:
NSSegmentedControl
拖到NSView
NSSegmentedCell
myCustomCell
)完成工作。
但是,在以下简化示例中以编程方式创建NSSegmentedControl
时,我看不到如何对单元格进行子类化...
-(void)creatSegmentControl {
if (!mySegmentControl)
mySegmentControl = [[NSSegmentedControl alloc]
initWithFrame:NSMakeRect(0,0 400,20)];
[mySegmentControl setSegmentCount:2];
[mySegmentControl setLabel:@"First" forSegment:0];
[mySegmentControl setLabel:@"Second" forSegment:0];
[mySegmentControl setTarget:self];
[mySegmentControl setAction:@selector(segmentClicked:)];
}
NSSegmentedControl
似乎没有一种方法可以定义要用于它的段细胞实例的类。
像往常一样,任何和所有帮助都赞赏。
更新
尝试实施[mySegmentControl setCellClass:[myCustomCell class]
,但这也不起作用。我在想,也许它继承了像其他AppKit控件一样设置它的单元类的能力。 : - (
这必须是可能的......不知怎的......
答案 0 :(得分:0)
有点晚了,但不会覆盖cellClass的工作?
+ (Class)cellClass
{
return [YourCustomCellClass class];
}
答案 1 :(得分:0)
属性 cellClass
属于弃用类别。
您需要先创建自定义类的实例并设置 NSControl
的单元属性,然后再进行其他操作(是的 NSSegmentedControl
继承自 NSControl
)
NSSegmentedControl* oSegment = [[NSSegmentedControl alloc] init];
QPDFSegmentedCell* csell = [[QPDFSegmentedCell alloc] init];
oSegment.cell = csell;