我开始尝试将部分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
任何人都有这样的工作吗?
答案 0 :(得分:2)
虽然我无法进行枚举比较,但我已经能够完成这项工作。在用于自动化的JavaScript中,仅调用该属性将返回Apple对象的ObjectSpecifier。在这种情况下,statusType是一个“AdiumRichText”类。
如果你在属性之后放了(),它会调用getter方法,该方法返回一个工作正常的NSString(String)。所以这是代码:
if(Application('Adium').globalStatus().statusType() == "offline") {
console.log("offline");
}