実際には、カスタム statusItemView で選択NSStatusItem
したオブジェクトの背景を描画したいと考えています。CALayer
しかしそれ以来
- (void)drawStatusBarBackgroundInRect:(NSRect)rect withHighlight:(BOOL)highlight
レイヤーでは動かない(?) backgroundColorプロパティで色を描画してみました。しかし、selectedMenuItemColor を RGB に変換しても、あまり役に立ちません。グラデーションなしでとてもシンプルに見えます。:-/
私はこのコードでに変換[NSColor selectedMenuItemColor]
しました:CGColorRef
- (CGColorRef)highlightColor {
static CGColorRef highlight = NULL;
if(highlight == NULL) {
CGFloat red, green, blue, alpha;
NSColor *hlclr = [[NSColor selectedMenuItemColor] colorUsingColorSpace:
[NSColorSpace genericRGBColorSpace]];
[hlclr getRed:&red green:&green blue:&blue alpha:&alpha];
CGFloat values[4] = {red, green, blue, alpha};
highlight = CGColorCreate([self genericRGBSpace], values);
}
return highlight;
}
CALayer でネイティブに見える statusitem の背景を描画する方法はありますか?