問題タブ [applescript-objc]
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.
xcode - AppleScriptObjC を使用してコンテンツ ファイルを読み取り、新しいコンテンツを書き込む
入力ダイアログを変更したときにファイルを読み込んで書き戻す AppleScript コードを書きたい
のように:
Xcode 4.6 を使用して、テキスト フィールドと 2 つのボタンを作成しました。上記のコードを使用してホスト ファイルの内容を読み取り、テキスト フィールドに表示したいのですが、テキスト フィールドを変更して [保存] ボタンをクリックすると、管理者権限でホスト ファイルに書き戻す必要があります。試してみましたが、うまくいきません。おそらく、applescript と applescriptobjc の違いがわかりません。
これで私を助けてください。
前もって感謝します
macos - OS X Cocoa アプリから Applescript に変数または文字列を渡す
変数をapplescriptに渡したいです。たとえば、Cocoa アプリ (cocoa-applescript アプリではない) のテキスト フィールドにいくつかの単語を入力すると、後で使用するために Applescript の変数になります。Applescript を使用して、一部のソフトウェアにいくつかのファイルを実行するように指示します。
Applescript から Objective C に文字列を渡す方法を試してみました。initialwithSource を使用して、 applescriptの最初の行を追加できます。私は長い文章を書かなければなりません。また、AppleScript が既にある場合は、それらを結合する必要があります。または、以下のようにすべてのスクリプトを Cocoa で作成する必要があります。無意味だし、うまくいかないこともある。
あなたの誰かがより良い方法を知っていますか?
ありがとう
path - パスを文字列 Applescript として保存
Applescript で、パスを保存したいファイルを選択しています (後で開きます)。
ファイルのパスを文字列として保存しようとしたときに、次のエラーが表示されました。
エラー「エイリアス \"Macintosh HD:Users:Username:Desktop:Folder:File.xls\" のパスを文字列型にできません。」エイリアス「Macintosh HD:Users:Username:Desktop:Folder:File.xls」のパスから数値 -1700 を文字列に
後でこのファイルを開くときに思い出せるように、このファイル パスを効果的に保存するにはどうすればよいですか?
アップルスクリプト:
*注: 私も試しas text
ました。
objective-c - Cocoa アプリに埋め込まれた AppleScript-ObjC でエラーを処理する最良の方法は?
大規模な Cocoa/Objective-C アプリ内から小さな AppleScript ハンドラーを呼び出しています (AppleScript-ObjC フレームワークを使用して、Objective-C コードから直接 AppleScript メソッドを呼び出します)。最初は Scripting Bridge を使ってみましたが、外部アプリとの互換性の問題でうまくいきませんでした。AppleScript の唯一の目的は、本質的に小さな文字列を外部アプリに送信することです。外部アプリケーションを制御するためにこのようなことを試みたのはこれが初めてなので、明らかな間違いを犯している場合はご容赦ください。
外部アプリケーションの状態によっては、AppleScript でエラーが発生することがあります。Objective-C コードでこれらのエラーを適切に処理したいと考えています。
私が現在これを行っている方法は、AppleScript に try ブロックがあることです。
スクリプトが正常に終了した場合は 0 を返し、そうでない場合はエラー番号を返します。次に、Objective-C コードで戻り値をテストし、エラーが発生した場合に「通常の」例外をスローして、通常の例外処理コードでそれを処理できるようにします。
これは機能しますが、Objective-C コードから直接 AppleScript 例外をトラップする方法はありますか? try-error
XCode でAppleScript コードなしでコードを実行すると、AppleScript から戻る前に例外ブレークポイントにヒットしたように見えますが@catch
、NSException
. 何らかの形でヒットしている例外をキャッチする方法はありますか? 答えはノーだと思いますが、私がやっていることよりも良い方法がないことを確認したかったのです。AppleScript-ObjC に関する Apple のドキュメントはかなりまばらで、ほとんどは AppleScript 内でのエラーの処理について説明しているだけです。
更新: そこで、ブレークポイントの設定を少しいじってみたところ、Objective-C の例外ではなく、AppleScript コードから送信された C++ の例外であることがわかりました。だから@catch
使っていたブロックに引っかからなかった。AppleScript-ObjC メカニズムは制御フロー/回復可能なエラーの例外を使用しているようで、それらがスローされたときにブレークするようにブレークポイントを設定しました。したがって、AppleScript アプリケーションでエラーをキャッチし、エラー コードを文字列または整数として Objective-C コードに返すのがおそらく最善だと思います。
objective-c - object-c から applescript-objc への複数の引数の呼び出し
私は次のような方法でapplescript-objcスクリプトを持っています:-
そして、このメソッドをobjective-cから呼び出したいのですが、複数の引数を持つメソッドを呼び出す方法がわかりません。次のように、引数が1つだけのメソッドを呼び出すのに問題はありません:-
誰か助けてください。
よろしく、アンディ。
objective-c - AppleScriptObjC の @selector に相当するもの
と を使用して、NSDatePicker
の値が変更さNSTextField
れるたびにテキスト フィールドを更新しています。NSDatePicker
Objective-C では、次の方法を使用します。
このメソッドを次の AppleScriptObjC コードに変換しました。
ただし、これによりビルドが失敗します。の代わりに、、、および;@selector(dateChanged_)
も試しました。これまでのところ運がありません。"@selector(dateChanged:)"
"@selector(dateChanged_)"
dateChanged_
このメソッドを AppleScriptObjC に変換する正しい方法は何ですか?