【问题标题】:Swift, macos - Can I detect or make other app to be in the foreground?Swift,macos - 我可以检测或使其他应用程序处于前台吗?
【发布时间】:2018-07-22 08:11:28
【问题描述】:

我正在使用 Swift 在 macOS 上创建一个应用程序,

应用需要打开Safari, 我需要 Safari 应用程序始终处于前台。

可以吗?

【问题讨论】:

  • NSWorkspace 可以启动应用程序,NSRunningApplication 可以激活应用程序。
  • @vadian tnx,我阅读了 NSRunningApplication 并找到了答案

标签: swift macos swift4


【解决方案1】:

感谢@vadian 的评论,我找到了答案

func foreground_safari() {
    let apps = NSWorkspace.shared.runningApplications
    for app in apps {
        if app.localizedName == "Safari" {
            if !app.isActive {
                app.activate(options: NSApplication.ActivationOptions.activateIgnoringOtherApps)
            }
        }
    }
}

【讨论】:

    【解决方案2】:

    如果您想使用链接打开 safari,请尝试此操作 UIApplication.shared.open(NSURL(string:"http://www.example.com/")! as URL)

    【讨论】:

    • 问题是关于 macOS 的,不要在 Swift 3+ 中使用NSURL
    猜你喜欢
    • 2015-03-17
    • 1970-01-01
    • 2016-02-10
    • 2017-04-12
    • 2019-07-14
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多