objective-c - Cocoa:隐藏其他应用程序和自身

标签 objective-c macos cocoa hide

我需要一种方法让应用程序与所有其他应用程序一起隐藏自身。我目前隐藏了其他应用程序,但我的应用程序保持打开状态。我通过选择单击按钮并将其拖动到实用程序中的“应用程序”区域来完成此操作。然后我选择“隐藏其他应用程序”。

最佳答案

好的,所以,如果您只想显示桌面,您可以只做您正在做的事情,然后手动命令您自己的窗口消失。但如果你想与桌面交互,那就行不通了。桌面是 Finder 的一部分,因此如果您在桌面上执行操作,Finder 将是最前面的应用程序,因此此时无法隐藏。如果您同意,您可以隐藏除 Finder 之外的所有应用程序。

但实际上有一个系统工具可以做到这一点。清除所有窗口以便您可以看到桌面是任务控制的一项功能 - 它在任务控制首选项中列为“显示桌面”。在我的系统上,它是 F11。不幸的是,没有用于调用任务控制功能的公共(public) API。不过,如果您愿意的话,还有一个私有(private)的:

void CoreDockSendNotification(CFStringRef, void*);

void toggleShowDesktop() {
    CoreDockSendNotification(CFSTR("com.apple.showdesktop.awake"), NULL);
}

(尽管 Apple 不支持私有(private) API,但如果他们发现您使用它们并且不保证它们会正确运行,可能会将您从 App Store 中踢出,这甚至可能会或可能不会当 Yosemite 出现时就可以工作,因为这就是私有(private) API 的本质。)

关于objective-c - Cocoa:隐藏其他应用程序和自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24235425/

相关文章:

ios - xcarchive 可以在 iPhone 上打开吗?

objective-c - __block 属性声明

ios - (在iOS/OS X SDK中)__i386__和__x86_64__在哪里定义?

objective-c - 将 NSWindow 拖动到高于菜单栏的位置

objective-c - NSTextFieldCell 标准文本绘制位置

ios - 点击移动 UITableViewCell 的内容

ios - UIPageViewController自定义PageControl

cocoa - xib 文件显示在错误的目标中

java - cmd- 的按键?在 OS X 上? ( java )

swift - 搜索与特定类型匹配的对象