1

Web を検索してきましたが、HUD の透明度 (タイトル バーを含むすべてのパネルの透明度) を変更する方法に遭遇しませんでした。それを変更することは可能ですか?

どうも

4

3 に答える 3

3

setAlphaValueNSWindow から継承された を使用できるはずです。

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html

[ myPanel setAlphaValue: 0.5 ];
于 2011-03-26T17:37:06.143 に答える
1

不可能です。HUDパネルは透明にすることを目的としています。不透明度やベースビューの不透明度を変更することはできません。

NSLog(@"opaque before? %@", [hud isOpaque] ? @"YES" : @"NO");
[hud setOpaque:YES];
NSLog(@"opaque after? %@", [hud isOpaque] ? @"YES" : @"NO");

OpaqueHUD[18952:a0b] opaque before? NO
OpaqueHUD[18952:a0b] opaque after? NO

NSLog(@"alpha before: %.2f", [hud alphaValue]);
[hud setAlphaValue:1.0f];
NSLog(@"alpha after: %.2f", [hud alphaValue]);

OpaqueHUD[18952:a0b] alpha before: 1.00
OpaqueHUD[18952:a0b] alpha after: 1.00

NSView * contentView = [hud contentView];    
// In layer-backed mode
NSLog(@"content alpha before: %.2f", [contentView alphaValue]);
[contentView setAlphaValue:1.0];
NSLog(@"content alpha after: %.2f", [contentView alphaValue]);

OpaqueHUD[18952:a0b] content alpha before: 1.00
OpaqueHUD[18952:a0b] content alpha after: 1.00

次のことを行う必要があります。1)カスタムの不透明なサブビューをそこに配置し、半透明のタイトルバーを使用します。b)NSPanel背景色と不透明度を変更できる通常のスタイルでを使用し、通常のタイトルバーとして使用します。またはd)独自のカスタムウィンドウを作成します(その記事の下部にある別の記事への適切なリンク)。独自のウィンドウフレームの作成に関するこの記事も参照してください(警告:プライベートAPIを使用しており、数年前のものです)。

于 2011-03-27T04:20:21.957 に答える