作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想向 NSTabViewItem
添加一个带有一些文本的图标。
请帮我解决 drawLabel:inRect:
方法中的代码。
- (id)initWithCoder:(NSCoder *)decoder
{
[super initWithCoder:decoder];
tabCell = [[NSBrowserCell alloc] initImageCell:[NSImage
imageNamed:@"xyz"]];
[tabCell setLeaf:YES];
[tabCell setFont:[[self tabView] font]];
[tabCell setStringValue: [self label]];
return self;
}
- (void)drawLabel:(BOOL)shouldTruncateLabel inRect:(NSRect)tabRect
{
{ // modify the rect a tad so the cell draws properly..
tabRect.origin.y += 2;
tabRect.size.width += 16;
}
[tabCell drawWithFrame:tabRect inView:[self tabView]];
}
- (NSSize)sizeOfLabel:(BOOL)shouldTruncateLabel
{
NSSize superSize = [super sizeOfLabel:shouldTruncateLabel];
NSImage *icon = [tabCell image];
superSize.width += [icon size].width-4;
return superSize;
}
我可以向 NSTabViewItem
添加一个图标,但该图标由于尺寸太大而从选项卡中出来。如何保持图标的大小保持在 TabViewItem
内?
最佳答案
不确定,如果您的问题得到解决,我有类似的用例,并且我正在使用drawLabel并在其中附加图像,
引用代码片段,
- (void)drawLabel:(BOOL)shouldTruncateLabel inRect:(NSRect)tabRect{
NSImage *pImage = [self getImage];
[[NSGraphicsContext currentContext] saveGraphicsState];
NSAffineTransform* xform = [NSAffineTransform transform];
[xform translateXBy:0.0 yBy: tabRect.size.height];
[xform scaleXBy:1.0 yBy:-1.0];
[xform concat];
if(pImage){
[pImage drawInRect:NSMakeRect(tabRect.origin.x-8,-6,16, 16)fromRect:NSZeroRect
operation:NSCompositeSourceOver
fraction:opacity];
}
[[NSGraphicsContext currentContext] restoreGraphicsState];
[super drawLabel:shouldTruncateLabel inRect:tabRect];
NSLog(@" Inside drawRect text (%@)",[self labeltitle]);
}
关于objective-c - cocoa : how to add an icon to NSTabViewItem using the method drawlabel:inRect in cocoa?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11520961/
我想向 NSTabViewItem 添加一个带有一些文本的图标。 请帮我解决 drawLabel:inRect: 方法中的代码。 - (id)initWithCoder:(NSCoder *)deco
我是一名优秀的程序员,十分优秀!