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

OSX Yosemite - JavaScript for Automation Accessing Enums

本文关键字:访问 枚举 JavaScript Yosemite 用于 OSX      更新时间:2023-09-26

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

在AppleScript:

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

在JavaScript中,我不知道如何访问"脱机"enum:

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

有人得到类似的工作吗?

虽然我无法进行枚举比较,但我已经能够使此工作。在用于自动化的JavaScript中,只调用属性返回Apple对象的ObjectSpecifier。在本例中,statusType是一个"AdiumRichText"类。

如果你把()放在属性后面,它会调用getter方法,返回一个NSString (String)。下面是代码:

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