こんにちは、私のアプリケーションでは、CALayer を使用したカスタム ビューがあります (トランジション アニメーションに使用します)。そのビューにいくつかのサブビューを追加します。そのうちの 1 つは NSTableView を使用したビューです。NSTableView の各セルは、そのコンテンツを影で描画します。次のようなコード:
NSShadow* shadow = [[NSShadow alloc] init];
[shadow setShadowOffset:NSMakeSize(2.0, -2.0)];
[shadow setShadowBlurRadius:2.0];
[shadow setShadowColor:[[NSColor blackColor] colorWithAlphaComponent:0.3]];
[shadow set];
[self.stringValue drawInRect:NSMakeRect(x, y, w - 60, h) withAttributes:attributes];
NSTableView の CALayer がオンになっている行が 50 行未満の場合、または IB で CALayer をオフにすると、次のようにセルが描画されます: http://i.stack.imgur.com/zMxmK.png
しかし、私の NSTableView に ~50 以上の行があり、IB で CALayer をオンにすると、次のようにセルが描画されます: http://i.stack.imgur.com/IMyIP.png
どうしてですか?私は持っていたものを壊します:(