気にしないでください、次のコードは私にとってはうまくいきます、
- (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];
}
変換する理由:
画像が反転して表示されていたので、変換する必要があります。
なぜオフセット: 変換後も、位置を調整して、タイトルの直前に見えるようにする必要があります。
みんな、私はタイトルを設定している間、
スペースを追加して、タイトルが画像に重ならないようにします。これが醜いアプローチであることは知っていますが、他の簡単な方法はありません。自分でテキストを描画する場合は、切り捨ても処理する必要があります。
質問を見て回答してくれた人に感謝します
敬具
ローハン