我面临的问题是如何在Mac中设置NSTextFieldCell的框架。我的NSTextFieldCell位于列的(0,0)点。我需要4px差距在Y位置。下面是现有UI的图像。

下面是.xib结构如下所示:

我试图设置框架的委托方法如下所示:
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)aRow
{
if ([[aTableColumn identifier] isEqualToString:@"notes"])
{
[aCell setBackgroundColor:[NSColor redColor]];
NSTextFieldCell *theCellView = aCell;
NSView *controlView = [theCellView controlView];
NSRect frame = controlView.frame;
frame.origin.x = 120;
frame.origin.y = 130;
[controlView setFrame:frame];
}
}发布于 2016-11-16 15:50:43
细胞没有框架。单元格是轻量级对象,用于绘制拥有控件视图告诉它们的位置。表视图可以使用单个单元格绘制给定列的所有行。它将计算列的一行的帧,用来自该行和列的值配置单元格,并告诉单元格在它计算的框架中绘制自己。然后,它将为下一行配置单元格,并告诉单元格在该行的帧中绘制自己。等。
因此,您需要专注于表视图,而不是单元格来影响单元格绘制的框架,因为计算该框架的是表视图。您是否尝试过将intercellSpacing设置为具有非零height
此外,您应该考虑转换为一个基于视图的表视图,在那里您有更大的控制。
https://stackoverflow.com/questions/40632119
复制相似问题