我有一个NSTableView,它在我的窗口上从一个边缘延伸到另一个边缘,但是桌子边缘的单元格中的数据确实需要一些填充。如果我在边缘留下一个阴沟,窗口看起来不太好,所以我想尝试在一些单元格中添加一些填充,这样数据就不会正好靠边缘。
我在Interface Builder或代码文档中找不到有关向单元格添加填充或插入内容的任何内容。
有什么建议吗?
答案 0 :(得分:4)
您可以继承NSTextFieldCell并覆盖drawInteriorWithFrame:inView:方法以自定义绘制字符串。
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
NSRect titleRect = [self titleRectForBounds:cellFrame];
NSAttributedString *aTitle = [self attributedStringValue];
if ([aTitle length] > 0) {
[aTitle drawInRect:titleRect];
}
}
其中titleRectForBounds:添加一些空格
- (NSRect)titleRectForBounds:(NSRect)bounds
{
NSRect titleRect = bounds;
titleRect.origin.x += 5;
titleRect.origin.y += 5;
NSAttributedString *title = [self attributedStringValue];
if (title) {
titleRect.size = [title size];
} else {
titleRect.size = NSZeroSize;
}
// We don't want the width of the string going outside the cell's bounds
CGFloat maxX = NSMaxX(bounds);
CGFloat maxWidth = maxX - NSMinX(titleRect);
if (maxWidth < 0) {
maxWidth = 0;
}
titleRect.size.width = MIN(NSWidth(titleRect), maxWidth);
return titleRect;
}
http://comelearncocoawithme.blogspot.com/2011/09/custom-cells-in-nstableview-part-1.html
有一个更完整的例子答案 1 :(得分:0)
简单方法:在文字字符串之前添加空格。 更好的方法:在您的单元格中嵌入一个视图,并将所有其他UI对象放在其中。
答案 2 :(得分:-1)
在你的cellforrowAtIndexPath中你需要实现它。
cell.textLabel.text = [NSString stringWithFormat:@“%@”,sometext];
或者 为它添加标签和设置框架。然后将其添加到单元格