2012-04-11 18 views
0

Ich verwende ::RunAppModalLoopForWindow(WindowPtr), um ein Carbon-Fenster als modal zu betreiben. Aber irgendwann ich zeigen muss/verstecken Sie alle Windows-Anwendung mit:Wie ändere ich NSCarbonWindow Sichtbarkeit?

NSArray* windowNumbers = [NSWindow windowNumbersWithOptions:0]; 

for (NSNumber* windowNumber in windowNumbers) 
{ 
    NSWindow* window = [[NSApplication sharedApplication] windowWithWindowNumber:[windowNumber integerValue]]; 

     [window setAlphaValue:CGFloat(showFlag)]; 
} 

Aber Fenster ist NSCarbonWindow*, die nicht auf setAlphaValue reagiert, und somit wird das Fenster nicht seine Sichtbarkeit zu ändern.

Auch ich weiß nicht, wo NSCarbonWindow definiert ist, so kann ich von NSWindow auf NSCarbonWindow werfen.

Antwort

1

Wie wäre:

if ([window respondsToSelector: @selector(setAlphaValue:)]) 
    [window setAlphaValue:CGFloat(showFlag)]; 
else if (showFlag) 
    ShowWindow([window windowRef]); 
else 
    HideWindow([window windowRef]); 
Verwandte Themen