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 メソッドが必要な場合に常に null 値を返すことです。

4

1 に答える 1

1

ようやく AppleScript の 'duplicate' コマンドをサポートすることができました。コマンドをサポートする通常の方法は 'NSCloneCommand' をサブクラス化することですが、この方法では、'NSCloneCommand' の特別な規定として、直接パラメーターは、直接オブジェクトではなく、包含オブジェクトを指定する指定子になります。これは、ドキュメント クラスが新しい構成オブジェクトを作成する手段を提供する、ドキュメントに属するオブジェクトを複製するケースを容易にするためのものだと思います。残念ながら、私の場合、私の構成オブジェクトは独自の複製に参加するため、その指定子を知る必要があります。解決策は、アプリケーション内でカスタムの「複製」コマンドを作成するオプションの手法によって「複製」コマンドをサポートすることでした。より一般的な「NSScriptCommand」のサブクラス化を伴うスイート。この代替手段は、「NSScriptCommand」クラスの「directParameter」メソッドから返される指定子のリダイレクトを回避します。そこから、複製用のすべての子クラス オブジェクトを派生させることができました。

于 2013-10-05T01:55:45.443 に答える