HUD NSPanel менее прозрачный - PullRequest
1 голос
/ 26 марта 2011

Я искал в Интернете, но не нашел способа изменить прозрачность HUD (ВСЕ прозрачность панели, включая строку заголовка). Можно ли это изменить?

Thx

Ответы [ 3 ]

2 голосов
/ 26 марта 2011

Вы должны иметь возможность использовать setAlphaValue, унаследованное от NSWindow:

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

[ myPanel setAlphaValue: 0.5 ];
1 голос
/ 30 мая 2013

Это возможно.Вам просто нужно сделать это программно, установив цвет (включая альфа-канал) в слое Core Animation вида панели.Вот пример настройки панели HUD с немного меньшей прозрачностью:

view.layer.backgroundColor = [NSColor colorWithSRGBRed:0.2 green: 0.2 blue: 0.2 alpha:0.7].CGColor

Просто помните, что вы должны сделать это после загрузки представления, например.не устанавливайте его в init:

1 голос
/ 27 марта 2011

Это невозможно. Панели 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) разместить там свое собственное непрозрачное подпредставление и жить с полупрозрачной строкой заголовка; б) использовать NSPanel с обычным стилем, цвет фона и прозрачность которого вы можете изменить, и жить с ним в виде обычной строки заголовка; или d) создайте свое собственное собственное окно (хорошая ссылка на другую рецензию внизу этой статьи). См. Также эту статью о создании собственной оконной рамы (предупреждение: один использует закрытый API и ему несколько лет).

...