Swift,macos-我可以检测或使其他应用程序处于前台吗?

Swift,macos-我可以检测或使其他应用程序处于前台吗?,swift,macos,swift4,Swift,Macos,Swift4,我正在用Swift在macos上创建一个应用程序 应用程序需要打开Safari, 我需要Safari应用程序始终处于前台 可以这样做吗?如果您想使用链接打开safari,请尝试以下操作 UIApplication.shared.open(NSURL)(字符串:http://www.example.com/)作为URL)感谢@vadian评论,我找到了答案 func foreground_safari() { let apps = NSWorkspace.shared.runningApp

我正在用Swift在macos上创建一个应用程序

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


可以这样做吗?

如果您想使用链接打开safari,请尝试以下操作
UIApplication.shared.open(NSURL)(字符串:http://www.example.com/)作为URL)

感谢@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)
            }
        }
    }
}

NSWorkspace
可以启动应用程序,而
NSRunningApplication
可以激活应用程序。@vadian tnx,我读过关于NSRunningApplication的文章,找到了一个答案问题是关于macOS的,不要在Swift 3中使用
NSURL
+