Tona ned skärmen bakom ett fönster

Tråden skapades och har fått 6 svar. Det senaste inlägget skrevs .
1

Här kommer nästa fråga jag inte lyckats hitta svar på. Jag vill tona ned skärmen bakom ett fönster när detta aktiveras, jämför med de två första lägena i Exposé. Hur gör jag? Jag har försökt både via CGDirectDisplay och genom att skapa ett bakomliggande extrafönster som är halvgenomskinligt, men jag har inte lyckats få någon av metoderna att fungera. Någon som har ett bra svar?

  • Medlem
  • 2005-02-02 12:24

Kodexempel

Jag slängde ihop ett snabbt test och fick det att fungera.

Bakgrund:
* skapade ett nytt projekt (cocoa application)
* subclassade NSWindowController
* kopplade den nya subclassen till fönstret
* la till följande i den nya subclassen:

-(void)awakeFromNib
{
	//Skapa ett nytt fönster att lägga bakom denna kontrollers fönster som mörkar bakgrunden
	NSWindow *bgWindow=[[NSWindow alloc] initWithContentRect:[[[self window] screen] frame] styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES];
	[bgWindow setIgnoresMouseEvents:YES];
	[bgWindow setBackgroundColor:[NSColor blackColor]];
	[bgWindow setAlphaValue:0.5];
	[bgWindow orderWindow:NSWindowAbove relativeTo:[[self window] windowNumber]];
}

Nackdelen med dimmad bakgrund är två, fönstret ligger kvar om man byter program och att din applikation inte är "macifierad".

Jag hoppas att jag svarade på rätt fråga eftersom jag inte först kollade vilka andra frågor du ställt på forumet (lite lat)...

När du inte kan hitta ett sätt att göra dettta så kanske du borde fråga dig varför. Det kanske är så att Apple inte vill att man ska kunna göra detta, kolla deras guideline för gui, http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/index.html.

Personligen kan jag tänka mig ett flertal exempel där jag inte skulle gilla att en applikation tonade ner alla andra fönster. När du skriver en applikation så måste du komma ihåg att den ska existera tillsammans med alla möjliga andra applikationer och är varken mer eller mindre viktig än de andra.

Joakim

Ursprungligen av jocked:

När du inte kan hitta ett sätt att göra dettta så kanske du borde fråga dig varför. Det kanske är så att Apple inte vill att man ska kunna göra detta, kolla deras guideline för gui, http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/index.html.

Personligen kan jag tänka mig ett flertal exempel där jag inte skulle gilla att en applikation tonade ner alla andra fönster. När du skriver en applikation så måste du komma ihåg att den ska existera tillsammans med alla möjliga andra applikationer och är varken mer eller mindre viktig än de andra.

Joakim

Men att erbjuda möjligheten är alltid vettigt, eller hur? Om det faktiskt är så att det är viktigt att fokusera på programmet ifråga, alltså.

  • Medlem
  • Uppsala
  • 2005-02-02 16:34

Jag kan tänka mig ett flertal fall då man vill kunna göra detta då man vill ha all fokus på en applikation.

Ursprungligen av dala:

Jag kan tänka mig ett flertal fall då man vill kunna göra detta då man vill ha all fokus på en applikation.

Ja, om det är användaren som bestämmer det och inte applikationen.

Joakim

1
Bevaka tråden