gpt4 book ai didi

xcode - 如何为 NSTableView 单元格添加填充到单元格?

转载 作者:行者123 更新时间:2023-12-03 16:32:58 25 4
gpt4 key购买 nike

我有一个 NSTableView,它在窗口上从一个边缘延伸到另一个边缘,但是表格边缘的单元格中的数据确实需要一些填充。如果我在边缘留下装订线,窗口看起来不太好,所以我想尝试在某些单元格内添加一些填充,这样数据就不会正好靠着边缘。

我在 Interface Builder 或代码文档中找不到有关向单元格添加填充或插入的任何内容。

有什么建议吗?

最佳答案

您可以继承 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 有更完整的示例

关于xcode - 如何为 NSTableView 单元格添加填充到单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7481053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com