首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift:使用NSRunningApplication

Swift:使用NSRunningApplication
EN

Stack Overflow用户
提问于 2014-12-21 17:51:48
回答 2查看 2.3K关注 0票数 0

我正在尝试激活一个正在运行的应用程序,但似乎无法使app.activateWithOptions调用正确,因为以下四次尝试中的每一次都会导致编译时错误。

代码语言:javascript
复制
import AppKit

var ws = NSWorkspace.sharedWorkspace()
var apps = ws.runningApplications
var app :NSRunningApplication

for app in apps {
    if (app.activationPolicy == NSApplicationActivationPolicy.Regular) {
        app.activateWithOptions(options: ActivateIgnoringOtherApps)
        app.activateWithOptions(options: NSApplicationActivateIgnoringOtherApps)
        app.activateWithOptions(options: NSRunningApplication.ActivateIgnoringOtherApps)
        app.activateWithOptions(options: NSRunningApplication.NSApplicationActivateIgnoringOtherApps)

        println(app.localizedName)
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-21 17:58:07

声明var app : NSRunningApplication是没有意义的,因为for...in行中的app声明了一个不同的app。你应该删除这一行,因为它是误导你,是完全没有意义和混乱。

因此,需要指定类型的是app,即for...in中的那个。在此编译尝试中,您将不会有任何进展,除非您修复了这个问题:

代码语言:javascript
复制
for app in apps as [NSRunningApplication] {

现在你可以一个一个地改正你的错误了。我会给你第一个提示,它应该是:

代码语言:javascript
复制
app.activateWithOptions(.ActivateIgnoringOtherApps)

剩下的三行是留给读者的练习!即使如此,你还是会遇到一些麻烦,因为你并没有把这些选项结合起来--相反,你是在四次单独激活同一个应用程序,这是愚蠢的,根本不是你想要的。你应该先组合选项,然后激活应用程序一次。

总的来说,从您的代码来看,您似乎根本不了解Swift。在你尝试使用它之前,你真的应该停下来学习它。否则,你就会摇摇欲坠(就像你现在明显的那样)。

票数 0
EN

Stack Overflow用户

发布于 2016-01-31 17:18:19

谢谢你的回答马特。如果您只是在寻找您的应用程序(而不是在激活它之前添加一行),我将补充这一点。下面两行将您的应用程序分配给常量"app“,然后激活它。当你想从后台运行的应用程序中获得屏幕上的NSAlert时,这是有用的。

代码语言:javascript
复制
    let app = NSRunningApplication.currentApplication()
    app.activateWithOptions(.ActivateIgnoringOtherApps)

    let user_choice = alert.runModal()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27592090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档