我正在尝试激活一个正在运行的应用程序,但似乎无法使app.activateWithOptions调用正确,因为以下四次尝试中的每一次都会导致编译时错误。
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)
}
}发布于 2014-12-21 17:58:07
声明var app : NSRunningApplication是没有意义的,因为for...in行中的app声明了一个不同的app。你应该删除这一行,因为它是误导你,是完全没有意义和混乱。
因此,需要指定类型的是app,即for...in中的那个。在此编译尝试中,您将不会有任何进展,除非您修复了这个问题:
for app in apps as [NSRunningApplication] {现在你可以一个一个地改正你的错误了。我会给你第一个提示,它应该是:
app.activateWithOptions(.ActivateIgnoringOtherApps)剩下的三行是留给读者的练习!即使如此,你还是会遇到一些麻烦,因为你并没有把这些选项结合起来--相反,你是在四次单独激活同一个应用程序,这是愚蠢的,根本不是你想要的。你应该先组合选项,然后激活应用程序一次。
总的来说,从您的代码来看,您似乎根本不了解Swift。在你尝试使用它之前,你真的应该停下来学习它。否则,你就会摇摇欲坠(就像你现在明显的那样)。
发布于 2016-01-31 17:18:19
谢谢你的回答马特。如果您只是在寻找您的应用程序(而不是在激活它之前添加一行),我将补充这一点。下面两行将您的应用程序分配给常量"app“,然后激活它。当你想从后台运行的应用程序中获得屏幕上的NSAlert时,这是有用的。
let app = NSRunningApplication.currentApplication()
app.activateWithOptions(.ActivateIgnoringOtherApps)
let user_choice = alert.runModal()https://stackoverflow.com/questions/27592090
复制相似问题