我想知道是否有一种绘制NSCell的方法,如下面的示例。我们的想法是在同一列中插入3行,第一列有足够的空间用于标题,其余的用于2列。
TITLE_的 _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ 的__ _ ____
DATA_TITLE_1:DATA_VALUE_1 _ _ _ DATA_TITLE_2:DATA_VALUE_2
DATA_TITLE_3:DATA_VALUE_1 _ _ _ DATA_TITLE_4:DATA_VALUE_2
注意:
提前致谢。
答案 0 :(得分:1)
没有可以执行此操作的标准NSCell,但您可以编写自己的NSCell类之一的子类并使其执行此操作。请参阅Control and Cell Programming Topics。
答案 1 :(得分:1)
事实证明,当子类化NSCell时,您可以根据需要在帧中添加任意数量的单元格。你只需要覆盖drawInteriorWithFrame方法就可以分配一个NSCell,然后在单元格的框架内的任何地方绘制它。
这是一个简单的例子:
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
NSRect modifiedFrame = NSMakeRect(cellFrame.origin.x +10, cellFrame.origin.y +10, cellFrame.size.width -10, cellFrame.size.height -10);
NSTextFieldCell *modifiedCell = [[NSTextFieldCell alloc] initTextCell:@"TEST"];
[modifiedCell drawWithFrame:modifiedFrame inView:controlView];
[super drawInteriorWithFrame:cellFrame inView:controlView];
}