objective-c - 如何更改 NSCarbonWindow 可见性?

标签 objective-c macos cocoa

我正在使用 ::RunAppModalLoopF​​orWindow(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。

最佳答案

怎么样:

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

关于objective-c - 如何更改 NSCarbonWindow 可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10108435/

相关文章:

ios - 通过文本字段传递隐藏变量或两个变量

iphone - 在 iPhone 中实现图表

cocoa - Apple 事件远程控制鼠标

objective-c - Cocoa 绑定(bind)和检查字符串内容

ios - iPad 版 BaseMAP 图库弹出窗口

javascript - 我如何获取当前显示在 WebView 上的 html 内容?

ios - 如何开始在 mac os 的 cocoa 应用程序中处理标签?

objective-c - 使用 [NSBundle loadNibNamed :owner:] but the window does not appear in the foreground 加载 NIB

Swift WKWebView 连续拼写检查

macos - MKMapAnnotationManager 未将自身删除为 MKAnnotation 的观察者