2012-04-11 52 views
0

我使用::RunAppModalLoopForWindow(WindowPtr)以模態運行碳窗。但在某些時候我需要顯示/隱藏所有應用程序的窗口有:如何更改NSCarbonWindow的可見性?

NSArray* windowNumbers = [NSWindow windowNumbersWithOptions:0]; 

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

     [window setAlphaValue:CGFloat(showFlag)]; 
} 

但窗口是NSCarbonWindow*不給setAlphaValue反應,因而,窗口不改變其知名度。

此外,我不知道在哪裏定義了NSCarbonWindow,所以我可以從NSWindow投射到NSCarbonWindow。

回答

1

如何:

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