我正在尝试支持'duplicate'命令。它适用于复制顶级类:
tell application "SpellAnalysis" to duplicate level 1
然而,这崩溃了:
tell application "SpellAnalysis" to duplicate (get unit 1 of (get level 1))
我为这两个类提供了索引说明符,其中'unit'的外部容器是'level'。奇怪的是,我可以像这样指定单元类的属性:
tell application "SpellAnalysis" to (get general rule of unit 1 of (get level 1))
罪魁祸首似乎是'objectsByEvaluatingSpecifier'在NSCloneCommand子类中使用时总是返回一个空值,以及单元类'objectSpecifier方法,它需要它。
答案 0 :(得分:1)
我终于能够支持AppleScript'重复'命令了。虽然支持命令的常规方法是通过对“NSCloneCommand”进行子类化,但是使用此方法,直接参数会生成指定包含对象而不是直接对象的说明符 - 作为“NSCloneCommand”的特殊规定。我想这是为了方便你复制属于文档的对象的情况,其中文档类提供了创建新组成对象的方法。不幸的是,在我的情况下,我的组成对象参与了他们自己的复制,需要知道他们的说明者这样做。解决方案是通过在我的应用程序套件中创建自定义“复制”命令的可选技术来支持“复制”命令,该命令需要对更通用的“NSScriptCommand”进行子类化。这个替代方案避免了从'NSScriptCommand'类的'directParameter'方法返回的说明符的任何重定向。我能够从那里开始派生所有用于克隆的子类对象。