我正在使用::RunAppModalLoopForWindow(WindowPtr)
来运行碳窗作为模态。但在某些时候,我需要显示/隐藏所有应用程序的窗口:
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。
答案 0 :(得分:1)
怎么样:
if ([window respondsToSelector: @selector(setAlphaValue:)])
[window setAlphaValue:CGFloat(showFlag)];
else if (showFlag)
ShowWindow( [window windowRef] );
else
HideWindow( [window windowRef] );