問題タブ [nsappleeventdescriptor]

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 に答える
2630 参照

cocoa - -[NSAppleScript executeAndReturnError:] AppleScript エディタで動作するスクリプトでエラーが発生する

QuickTime プレーヤーが一時停止されているか、Cocoa から再生されているかを確認しようとしています。Script Debugger と AppleScript Editor で次の小さな AppleScript を使用すると、期待どおりにtrueorが返されます。false

ただし、Cocoa アプリの次のコード スニペットは機能しません。

上記のコードを実行すると、デバッグ コンソールは次のようになります。

デバッグ コンソールの状態

関連する場合、デバッガーの最後のステップ、つまり に値を割り当てるステップを実行するのに約 4 秒かかりますがdescriptor、これは私には非常に長いようです。

@autoreleaseブロック内に上記のものだけを含む単純なコマンド ライン ツール アプリを作成しましたが、動作します。

出力 (QuickTime Player の実行時) は次のとおりです。

デバッガーでサンドボックス コードをステップ実行すると、そのdescriptor割り当てが 1 秒以内に実行されます。では、これが機能しない原因となっているアプリ プロジェクトの違いは何でしょうか?

0 投票する
3 に答える
1404 参照

objective-c - 任意のアプリケーションにプログラムでテキストを入力

AppleScript ではなく Apple イベントを使用して、テキストをアプリケーションに入力し、マウスをクリックする概念実証の Objective-C 実行可能ファイルはありますか?

たとえば、AppleScript に相当するもの

Mac OS X 10.9 で動作するはずで、できれば未来志向です (後方互換性は問題ではありません)。コンテキストは、別の言語から Objective-C コードを呼び出すことです。

私はそれを読んだので、私はこれを言っています:

Mac OS X 10.7 の時点で、低レベルの Cocoa API (NSAppleEventDescriptor) には依然として重要な機能 (Apple イベントを送信する機能など) が欠けていますが、高レベルの Cocoa API (スクリプト ブリッジ) には欠陥があり、実行するには限界があります。 appscript スタイルのラッパーの基礎。

と:

NSAppleScript はメインスレッドでのみ安全に使用できます

だから、私の目標は次のとおりです。

  1. 任意のアプリケーション (名前または現在の場合)
  2. キーボード入力またはマウス
  3. CまたはObjective-Cから
  4. 数百ミリ秒以内

ありがとう!

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

objective-c - SWIFT で NSAppleEventDescriptor をアンラップできません

私は結果を与えるApplescriptを持っています。しかし、値を文字列にワープすることができないので、それを使用できます。

NSLog は次のようになります。

実際の結果は文字列「test.swift」です。この結果をアンラップ/解析するにはどうすればよいですか?

これを追加してみました:

また、メソッドを使用してみましたdescriptorForKeyword(<#keyword: AEKeyword#>)が、AEKeywordを設定するホットがわかりません。

0 投票する
4 に答える
645 参照

swift - 日付情報を AppleScript に渡すには?

NSAppleScript 経由で AppleScript を実行できるアプリを 1 つ作成しています。すべてうまくいきましたが、アプリから AppleScript に日付情報を渡す方法がわかりませんでした。(AppleScript には日付型があるので、これは可能だと思います) AppleScript にパラメーターを渡す方法は、NSAppleEventDescriptor を使用します。typeLongDateTime 型として渡すことができることを Google から学びました。

残念ながら、LongDateTime 型は、OS X 10.10 で Swift を使用しているため、長い間使用されていませんでした。コア サービス関数の UCConvertCFAbsoluteTimeToLongDateTime でさえ、10.10.3 から既に削除されています。

今、私は立ち往生しています。

インスピレーションを与えるアイデアはありますか?

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

swift - データを別のアプリに送信し、そこから応答を取得する

アプリ同士で通信しようとしています。

最初のアプリケーションでApple Eventsを処理しています

2 番目のアプリでは、NSAppleEventDescriptorオブジェクトを作成しています

今、NSWorkspace私は最初のアプリを起動しています

すべて問題ありません。関数handleGetURLEventは呼び出されますが、...replyEvent.desciptorTypeまた、2 番目のアプリにkAENullEventどのようにアクセスするのかわかりません。replyEvent

この解決策には何か問題があると思います。

私の質問は、他のアプリにデータを送信してデータを取り戻すにはどうすればよいですか?