0

我正在尝试支持“重复”命令。它适用于复制顶级课程:

tell application "SpellAnalysis" to duplicate level 1

但是,这会崩溃:

tell application "SpellAnalysis" to duplicate (get unit 1 of (get level 1))

我已经为这两个类提供了索引说明符,其中“单元”的外部容器是“级别”。奇怪的是,我可以像这样指定单元类的属性:

tell application "SpellAnalysis" to (get general rule of unit 1 of (get level 1))

罪魁祸首似乎是“objectsByEvaluatingSpecifier”在 NSCloneCommand 子类以及需要的单元类的 objectSpecifier 方法中使用时总是返回空值。

4

1 回答 1

1

我终于能够支持 AppleScript 'duplicate' 命令了。尽管支持该命令的常规方法是通过子类化“NSCloneCommand”,但使用此方法,您的直接参数会产生一个指定包含对象而不是直接对象的说明符——作为“NSCloneCommand”的特殊规定。我想这是为了方便您复制属于文档的对象的情况,其中文档类提供了创建新组成对象的方法。不幸的是,就我而言,我的组成对象参与了它们自己的复制,并且需要知道它们的说明符才能这样做。解决方案是通过在我的应用程序中创建自定义“复制”命令的可选技术来支持“复制”命令 s 套件需要继承更通用的“NSScriptCommand”。这种替代方法避免了从“NSScriptCommand”类的“directParameter”方法返回的说明符的任何重定向。我能够从那里工作以派生所有子类对象以进行克隆。

于 2013-10-05T01:55:45.443 回答