我将NSTabView子类化并添加了5个TabViewItem,现在我想在NSTabViewItem中添加一个Icon以及标题, 任何人都可以建议我如何开始,我没有得到任何文件,除了,
- (void)drawLabel:(BOOL)shouldTruncateLabel inRect:(NSRect)tabRect
这是否意味着,如果我重写此方法,我需要绘制Icon和我自己的字符串,
为了设置标题,我使用以下方法,
[pTabViewItem setLabel:pLabelTitle];
亲切的问候 罗汉
答案 0 :(得分:3)
没关系, 以下代码适用于我,
- (void)drawLabel:(BOOL)shouldTruncateLabel inRect:(NSRect)tabRect{
// do we have an image to draw
NSImage *pImage = [pDelegate imageForCell];
[[NSGraphicsContext currentContext] saveGraphicsState];
NSAffineTransform* xform = [NSAffineTransform transform];
[xform translateXBy:0.0 yBy: tabRect.size.height];
[xform scaleXBy:1.0 yBy:-1.0];
[xform concat];
CGFloat x_Offset =0;
if(pImage){
[pImage drawInRect:NSMakeRect(tabRect.origin.x-8,-6,16, 16)fromRect:NSZeroRect
operation:NSCompositeSourceOver
fraction:1.0];
x_Offset = 16;
}
[[NSGraphicsContext currentContext] restoreGraphicsState];
[super drawLabel:shouldTruncateLabel inRect:tabRect];
}
为什么转型:
图像显示为倒置,所以我需要转换,
为什么抵消: 即使在转换之后,我也需要调整位置,使其看起来就在标题之前,
和伙计们,我在设置标题时,
附加一个空格,所以标题不会与图像重叠,我知道这是丑陋的方法,但是没有其他任何快速的方法来做,如果我自己绘制文本然后我需要照顾截断也,
感谢那些看过问题并回答问题的人 亲切的问候 罗汉