問題タブ [sdef]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
462 参照

xcode - 優れたSDEFエディターはどこで入手できますか?

私は、アップルスクリプト可能である必要があるObjectiveCプログラムを書いています。そのため、SDFファイルを作成して編集する必要があります。XMLを書く必要がなければ、XMLを書く必要はないので、誰かが私に優れたエディターを紹介してくれることを期待しています... SDEF EDitorを見つけましたが、いくつかのオプションが必要です。遊んで...

驚いたことに、applescriptエディタ自体はSDEFファイルを編集することを許可していません... hrm ...

ありがとう

0 投票する
1 に答える
371 参照

cocoa - Applescript は arRsync sdef コマンドを受け入れませんか?

「arRsync」と呼ばれるrsync用のオープンソースGUIフロントエンドを使用しています。うまく機能しますが、自動化する方法はありません。

私がやろうとしているのは、Applescript を使用して、次の単純なスクリプトを使用して (アプリケーションで定義した) プリセットを実行することです。

tell application "arRsync" to runPreset "presetTest1"

問題は、Applescript が「runPreset」をコマンドではなく変数と見なすことです。上記のテル/エンドテルのバリエーションも試しましたが、サイコロはありません。「runPreset」コマンドは arRsync.sdef の一部です

ここでarRsyncプロジェクトを見つけることができます

アプリ内で両方の Info.plist ファイルを開き、[スクリプト可能] ボックスにチェックを入れてみました (または、プロパティ リスト エディターを使用していない場合は [true] に設定します)。

Cocoaに関しては、私はスクリプトの初心者です:pヘルプは大歓迎です

0 投票する
1 に答える
715 参照

cocoa - Cocoa NSString と AppleScript テキスト型に関する AppScript の問題?

私のアプリケーションの 1 つで、いくつかの新しいプロパティをdocument標準 AppleScript スイートのクラスに追加しました。これらのプロパティには、 type のものもtextあれば、 type のものもありbooleanます。「sdef」ファイルを作成し、アプリのリソースに if を追加しました。

しかし、アプリを起動すると、コンソールに次のようなメッセージが表示されます。

スイート 'Standard Suite' のクラス 'window' のタイプ 'text' 属性 'title' に対する .sdef 警告: このプロパティのタイプは NSString から派生していないため、AppleScript の名前参照は機能しない可能性があります。

そして、実際にtextAppleScript 内の型でそのような新しいプロパティから値を取得しようとすると、失敗します。アプリ内の正しいメソッドが呼び出され、正しい値が としてNSString返されますが、AppleScript はエラーを返します。コンソールに再びメッセージが表示されます。

スクリプト コマンドの結果を返す際にエラーが発生しました: 結果オブジェクト...「要求された NSString 値」...タイプ「テキスト」の Apple イベント記述子に変換できませんでした。クラス '__NSCFString' のこのインスタンスは、-objectSpecifier が送信されたときに nil を返し (オーバーライドされていませんか?)、スクリプト クラス 'text' に対して宣言された強制型はありません。

NSStringこれはおそらく、Cocoaオブジェクトを AppleScriptオブジェクトに変換できなかったことを意味しtextます。

新しいブール値のプロパティの 1 つから値を取得しようとすると、問題なく動作します。

NSStringオブジェクトを AppleScriptオブジェクトに変換するには、正確に何をする必要がありtextますか?

0 投票する
1 に答える
197 参照

objective-c - Applescript 対応アプリケーションと Cocoa の問題

AppleScript に関する限り、私はまったくの初心者です。だからここにいる...

これは私がこれまでに行ったことです:

  • SimpleScriptingのアップル リファレンスを調べた
  • IDENTICAL.sdefファイルを実装
  • 新しいプロパティを設定するmyname
  • プリンシパル クラス (in info.plist) をppApplication(から継承するメイン クラスNSApplication)に設定します。
  • mynameプロパティへのアクセサを設定します

私のsdefファイル:

私のppApplicationクラス:



さて、問題は次のとおりです。

次のスクリプトを実行しようとしているとき ( AppleScript Editorで)

エラーが発生しthe variable myname is not definedます。

でも :

Xcode に戻って [ビルド設定] に戻り、製品名を - たとえば - myApplicationX に変更して再コンパイルすると、上記のコード (に変更tell application "myApplicationX") が機能します。

それで、私は何を間違っていますか?AppleScript エディタが、アクティブなアプリケーションのコンパイルではなく、以前のコンパイルと「対話」する可能性はありますか? 製品名を変更せずにこれに対処するにはどうすればよいですか?

0 投票する
1 に答える
307 参照

objective-c - Applescript対応のCocoa:オブジェクトのNSArrayへの参照?

わかった。だから、言いましょう:

  • のを返す際のmyCollectionクラス、クラスmyObject、およびプロパティobjectsがありますmyCollectionNSArraymyObject

.sdefとクラスのファイルを適切に設定したとするmyCollectionと、そこでもプロパティmyObjectを定義するにはどうすればよいですか?objects

つまり、これまでのところ、私はそのようなことをすることができます:

私が欲しいのはmyObject、配列の要素としてsにアクセスできるようにすることです。

これはこれまでの私の.sdef(ほぼ...)です:

どうすればいいですか?

0 投票する
2 に答える
475 参照

cocoa - NSApplicationDelegateを使用しているときに、AppleのSimpleScriptingの例を機能させることができません

簡単なObjective-Cアプリケーションを作成しようとしています。ステータスバーに単語を表示し、AppleScriptを介して単語を更新できるアプリが必要です。正直なところ、私はAppleScriptについてはほとんど知らず、Objective-Cについても何も知りません。しかし、メニュー項目があり、「quit」などのコアAppleScriptコマンドに応答するメニューバーアプリを入手するのに2時間しかかからなかったので、それほど難しいことではありません。残念ながら、私は次の6時間かけて、このアプリケーションにAppleScriptを介して取得および設定できる単純なプロパティを与える方法を見つけようとしました。

これが私の.hコードです:

このfoobazメソッドは、読み取り可能なプロパティを作成するために使用していたものです(*windowXCodeによって提供された定型文の一部であり、当面の問題には関係ありません)。これが私の.sdefファイルです:

だから私はここでAppleのSimpleScriptingの例のようにセットアップしました:https ://developer.apple.com/library/mac/#samplecode/SimpleScripting/Introduction/Intro.html

ただし、スクリプトエディタでこれを実行してみました。

そして、Appleの例とは異なり、コアプロパティのリストを取得するだけで、foobaz何も言及されていません。Appleの例では、カスタムプロパティを実行すると、コアプロパティの横に表示されます。

これについて100のバリエーションを試し、100の例を読んだように感じますが、何も機能しません。どんな助けでも大歓迎です。

0 投票する
2 に答える
574 参照

applescript - アプリケーション (NSApp) クラスの AppleScript 要素 (1 対多の関係) をサポートするにはどうすればよいですか?

ここに私が持っているものがあります:

1) 「Info.plist」に適切な「権限」エントリを含めます。

  • 「スクリプト可能」: はい
  • 「スクリプト定義ファイル名」: myApp.sdef

2) クラス拡張「要素」タグ内に要素「要素」タグを含めます。

3) 要素クラス タグを含めます。

4) デリゲートに「NSApplication」スクリプト機能サポートを転送するデリゲート メソッドを含めます。

}

5) 「ObjectItem」クラスを作成し、そこにオブジェクト指定子を配置します。

6) アプリケーションのデリゲート内に KVO アクセサー メソッドをポストします。

7) 要素の getter メソッドからオブジェクトを返す AppleScript を作成します。

8) 結果: エラー「変数オブジェクトが定義されていません。」「オブジェクト」からの番号 -2753

9) 髪を抜く

0 投票する
0 に答える
190 参照

macos - -objectSpecifier でキー Key を使用して NSUniqueIDSpecifier を返すと、valueIn が返されないWithUniqueID: 評価される

クラス NSUniqueIdentifierのリファレンス ドキュメントでは、一意の ID 指定子が次のスキームで評価されると主張しています。

  1. コンテナーが、valueIn<Key>WithUniqueID:スクリプトのキー値コーディングによって確立された関連パターンと一致するセレクターを持つメソッドを実装する場合、そのメソッドが呼び出されます。この方法は非常に高速である可能性があり、比較的簡単に実装できます。

  2. スクリプト オブジェクト指定子を評価する場合と同様に、指定されたオブジェクトのコンテナーには、オブジェクト指定子を評価する機会が与えられます。コンテナー クラスがメソッドを実装する場合 indicesOfObjectsByEvaluatingObjectSpecifier:、メソッドが呼び出されます。この方法は非常に高速になる可能性がありますが、実装は比較的困難です。

  3. 関連する 'ID' 属性が ID と一致する最初のNSWhoseSpecifierオブジェクトを指定するオブジェクトが合成され、評価されます。オブジェクトは、コンテナ内のNSWhoseSpecifierすべてのキー付き要素を検索して、一致を探す必要があります。検索は非常に遅くなる可能性があります。

ただし、valueIn<Key>WithUniqueID:呼び出されることはありません。例を挙げると、オブジェクト指定子を次のように記述するクラスがあります。

コンテナー クラスで定義した- (id)valueInAllObjectsWithUniqueID:(NSString *)uniqueIDメソッドは、私が定義したメソッドです。

コンテナに対応するクラスでは、-respondsToSelector:これをさらにデバッグするためにオーバーライドし、上記の呼び出しのindicesOfObjectsByEvaluatingObjectSpecifier:直後にスクリプト システムがクエリを実行する唯一の関連メソッドがある-objectSpecifierことを確認します (コンテナ クラスの説明と nil 以外の結果を返すことが確認されました)オブジェクト指定子が評価された直後にメソッド呼び出しを受け取るコンテナーのクラスと一致するコンテナー指定子)。

何か案は?これは OSX Mavericks (10.9.4) にあります。

0 投票する
0 に答える
161 参照

applescript - Applescript Sdef: 割り当て可能なコマンドを定義するには?

私のスクリプト可能な Mac アプリでは、次の構文を可能にしたいと考えています。

それは可能ですか?これを Sdef でどのように指定しますか?

私が思いつく唯一の方法は、名前set preference with keyでコマンドを定義することですが、Apple のScripting Interface Guidelinesでは、ここにあるような予約済みの名前でコマンドを開始するべきではないと述べていsetます。他に方法はありますか?それとも、この場合、私のアイデアを使用しても安全ですか?

現在、代わりにこれを使用してこれを回避していますが、より一般的な「セット」用語が好きなほど、その構文は好きではありません。

より良い提案は大歓迎です。

0 投票する
1 に答える
67 参照

macos - App.sdef から現在のアプリ情報を取得する

Linux で dbus を使用する場合と同様に、Mac アプリの現在のステータスに関する情報にアクセスしようとしています。

私がこれをやろうとしているアプリは Spotify です。パッケージの内容を検索したところ、/Resources ディレクトリに Spotify.sdef ファイルがあることがわかりました。これらの「スクリプト定義」について調査したところ、Spotify.sdef ファイルに記述されているデータ (つまり、タイトルとアーティスト情報) にアクセスできる方法があると思います。私は Cocoa 開発の経験がまったくないので、完全に間違っているかもしれません。

アプリケーションのパッケージ コンテンツ内の「スクリプト定義」ファイルからアクセスできると思われるデータにアクセスする際に、誰かが正しい方向に向けてくれると非常にありがたいです。私の最終的な目標は、単純な端末コマンドを使用して、現在 Spotify で再生されている曲を確認できるようにすることです。