【发布时间】:2016-03-15 23:34:15
【问题描述】:
我正在尝试向我的非 Cocoa 应用程序添加 AppleScripting 支持。
我正在处理诸如 AEGetParamDesc 之类的低级函数,我自己处理 form / want / seld 参数。
我的词汇表提供了一个类,我们称之为“图像”。它有一个属性“name”。
我已经得到了一些 Applescript 代码,例如:
get Images
get name of every Image
get count Images
get every Image
get first Image
get Image 1
因此,基本上,访问对象及其属性都有效。
但是,当我尝试这些类似的访问表单时,它们都失败了:
get Images whose name = "foo"
和
repeat with img in Images
end repeat
在第一种情况下,看来我必须处理test 表单。
在第二种情况下,计数运算符 (cnte) 不直接请求类对象,而是使用描述索引对象的 cobj 运算符。
这一切都让我想知道这会走多远。我是否必须在我的代码中单独实现 Applescript 的所有可能语法和运算符?我假设“谁的”运算符会简单地将“每个图像”和“图像 x 的名称”的请求组合起来,就像我可以在 Applescript 中单独编写它们一样,而不是为每个图像使用不同的 AppleEvent 公式。
whose <boolean-test> 也一样。为什么 AppleScript 不简单地执行 name = "foo" 本身的相等性测试,因为它是一个根本不需要涉及我的应用程序代码的文本比较?
我有什么遗漏吗?我可以将这些转发给我还不知道的 AE 功能,还是我必须自己处理所有可能的比较和流控制命令?
【问题讨论】: