swift - 以编程方式最小化所有窗口或除了我的 Cocoa 应用程序?

标签 swift cocoa window nswindow minimize

我无法在 Swift 中找到任何相关信息。有没有办法以编程方式使我的应用程序最小化在后台打开的所有其他窗口,或者甚至只是最小化 Safari?我基本上希望我的应用程序在桌面上运行,后台没有任何困惑。有没有办法以编程方式为 Cocoa 应用程序执行此操作?我是 swift 的新手,所以我们将不胜感激。

最佳答案

您可以在 NSWorkspace 上使用 api,它允许您在后台隐藏所有可见的应用程序。 您可以在此处找到有关 NSWorkspace 的更多信息:link

隐藏除发件人以外的所有应用程序。必须从您应用的主线程调用此方法。

NSWorkspace.shared().hideOtherApplications()

如果你只想隐藏Safari,

  let appPath = NSWorkspace.shared().fullPath(forApplication: "Safari")
  let identifier = Bundle.init(path: appPath!)?.bundleIdentifier

  if let bundleID = identifier {
  let runningApps = NSRunningApplication.runningApplications(withBundleIdentifier:bundleID )
        if !runningApps.isEmpty {
            runningApps.first?.hide()
        }
    }

关于swift - 以编程方式最小化所有窗口或除了我的 Cocoa 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38505717/

相关文章:

objective-c - NSMenuItem 启用项

macos - 让scrollWheel开始工作...在WebView中实现上一个和前进的手势

python - “窗口”对象没有属性 '_tclCommands'

c++ - 过滤 Boost 文件系统中的文件夹

ios - 丰富的本地通知

ios - 'ContentMode' 不是 'UIView' 的成员类型

objective-c - pathForResource 返回 null

wpf - 如何在关闭处理程序中区分 'Window close button clicked (X)'与window.Close()

swift - 当将变量发送到下一个 View Controller swift 时获取双变量

ios - Swift 在打开前预填充模态内容