OSX Yosemite - 用于自动化访问枚举的JavaScript

时间:2014-08-10 05:31:58

标签: javascript macos applescript osx-yosemite-beta javascript-automation

我开始尝试将部分AppleScripts转换为OS X Yosemite中的JavaScript,但我不明白我应该如何从应用程序访问枚举。例如 - Adium的状态。

在AppleScript中:

tell application "Adium"
    if status type of global status is offline then
        log "offline"
    end if
end tell

在JavaScript中,我不知道如何访问"离线"枚举:

if(Application('Adium').globalStatus.statusType == ?????) {
    console.log("offline");
}

我尝试过简单的事情,例如"离线"没有成功。 所有这些都是错误:

Application('Adium').StatusType("offline"); // error
Application('Adium').StatusType.offline;     // undefined
Application('Adium').StatusType.make({name:"offline"}); // error

任何人都有这样的工作吗?

1 个答案:

答案 0 :(得分:2)

虽然我无法进行枚举比较,但我已经能够完成这项工作。在用于自动化的JavaScript中,仅调用该属性将返回Apple对象的ObjectSpecifier。在这种情况下,statusType是一个“AdiumRichText”类。

如果你在属性之后放了(),它会调用getter方法,该方法返回一个工作正常的NSString(String)。所以这是代码:

if(Application('Adium').globalStatus().statusType() == "offline") {
    console.log("offline");
}