如何将填充添加到 a NSTableCellView
?
我希望内容具有 10px 的填充,类似于在纯 HTML 中的填充。(所有面)。文本应该垂直居中在中间。
目前我正在 NSTextFieldCell 的子类中执行此操作。但这似乎无法正常工作。
当我编辑文本时,编辑文本字段不使用 textfieldcell 中的填充。
图 2:
这是我目前拥有的代码,(的子类NSTextFieldCell
)
- (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView *)controlView {
NSRect titleRect = [self titleRectForBounds:cellFrame];
NSAttributedString *aTitle = [self attributedStringValue];
if ([aTitle length] > 0) {
[aTitle drawInRect:titleRect];
}
}
- (NSRect)titleRectForBounds:(NSRect)bounds
{
NSRect titleRect = bounds;
titleRect.origin.x += 10;
titleRect.origin.y = 2;
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;
}