2013-10-02 70 views
0

我試圖支持'重複'命令。它工作正常的複製頂班:AppleScript應用程序支持:'重複'命令失敗

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方法,在需要的地方。

回答

1

我終於能夠支持AppleScript'重複'命令。儘管支持該命令的正常方式是通過使用此方法對「NSCloneCommand」進行子分類,但您的直接參數會生成一個指定包含對象而不是直接對象的指定符 - 作爲「NSCloneCommand」的特殊配置。我想這是爲了便於您複製屬於文檔的對象,其中文檔類提供了創建新構成對象的方法。不幸的是,就我而言,我的組成對象參與了自己的重複,需要知道其指定者才能這樣做。解決方案是通過在應用程序套件中創建自定義「重複」命令的可選技術支持「重複」命令,該命令需要繼承更通用的「NSScriptCommand」。此替代方法避免了從'NSScriptCommand'類的'directParameter'方法返回的指定符的任何重定向。我能夠從那裏工作來派生所有用於克隆的子類對象。

+0

非常感謝100萬人 - 周圍沒有多少人知道如何做到這一點。 – Antony