2016-04-28 44 views
4

進捗インジケータの背景を緑に設定すると、期待通りに機能します。NSProgressIndicatorで背景色を白に設定できません

コード

loadingIndicator.wantsLayer = true 
loadingIndicator.layer?.backgroundColor = NSColor.greenColor().CGColor 

結果

enter image description here

しかし、私は白に背景色を設定すると、背景色が灰色のままです(代わりに白に変更) 。

コード

loadingIndicator.wantsLayer = true 
loadingIndicator.layer?.backgroundColor = NSColor.whiteColor().CGColor 

結果

enter image description here

なぜ機能しない白に背景色を設定しますが、グリーンはないでしょうか?この問題を修正するにはどうすればよいですか?私はOS X 10.11.4を使用しています。

EDIT:これは、進行状況インジケータがポップオーバーとして表示されたビューの内側にある場合にのみ発生します。

+0

popoverのインジケータと同じ問題がある –

答えて

1

これを解決する方法を見つけました。 NSProgressIndicatorのCALayerには、見ている色付きの背景色を示すサブレイヤがあります。そのサブレイヤーを非表示にすると背景が表示されなくなり、スピナーが表示されたままになります。

CALayer *layer = [[self popoverProgressIndicator] layer]; 
CALayer *backgroundLayer = [[layer sublayers] firstObject]; 
[backgroundLayer setHidden:YES]; 

私は、私は背景を変更するためのソリューションhereを使用していたNSPopoverの内側たときに、この問題を見てきました。

3

NSPopover内でNSProgressIndicatorを使用すると、同じ問題が発生しました。

私の解決策は、以下のようにポップオーバーに外観を設定することでした。 NSAppearanceNameVibrantDarkを除く他の名前でも、私はこれがなぜ起こるかわからないんだけど、プロパティを設定した後

を働いた

  • OSX 10.11.5/Xcode7.3.1試着

    popover.appearance = NSAppearance(named: NSAppearanceNameAqua) 
    
  • 関連する問題