Это невозможно. Панели 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 и ему несколько лет).