• ベストアンサー

AppleScriptの記述方法で困っています。

前回別カテゴリで質問させて頂きましたが、 今なお解決することが出来ないのでこちらで質問し直しさせて頂きます。目を通して頂けますと嬉しいです。 XcodeでAppleScriptを使用してプログラミングしています。 WebKit frameworkを用いて、webviewの機能をつくり、textfieldにURLを入力しリターンキーを押すと、webページがwebviewに表示される仕組みになっています。(takeStringURLFrom:の機能を使っています) そこで、リターンキーを押さずに自動的にwebページが表示されるようにAppleScriptでプログラムを組みたいのですが どのようにプログラムを記述すればいいのか分かりません。 例えばabcという変数にhttp://www.yahoo.co.jp/を入れて set contents of text field "textfield" of window "main" to abc というプログラムを組んでいます。 その後の記述が分からないのですが、どなたか詳しい方がいらっしゃればアドバイスして頂けないでしょうか。 (キーボードによるキー入力はせずにプログラムの中で、決まったURLをあらかじめ書き込んでおき、それを変数に入れてテキストフィールドに表示させる仕組みなのでkeyupイベントは使用することが出来ません><) どうか宜しくお願い致しますm(_ _)m

  • Mac
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • coriaka
  • ベストアンサー率72% (126/175)
回答No.2

AppleScript Studioで直接操作できない機能を使用するときにcall mothod命令を使うとうまくいく時があります。 今回の場合は、WebViewに定義されている"takeStringURLFrom:"を利用します。 Web View の名前を"webview1" Text Field の名前を"textfield1" Window の名前を"main" URLを入れる変数名を"abc" とした場合、以下のようにします。 -- set TextFieldReference to text field "textfield1" of window "main" set WebViewReference to view "webview1" of window "main" set abc to "http://www.google.co.jp/" set string value of TextFieldReference to abc call method "takeStringURLFrom:" of WebViewReference with parameter TextFieldReference -- 自分の環境ではWebViewでYahooを開くと強制終了してしまうのでgoogleをテストURLに使用しました。 call methodで操作する対象は参照指定しないとうまく動かないみたいです。 call method命令を使えばCocoaの関数を直接呼び出すことができ、AppleScript Studioの機能の穴を埋めることができます。 ところが、使用するにはCocoaの関数を作成できる程度にはObjective-Cを学ぶ必要があります。 当然、Objective-Cを知れば普通にCocoaアプリケーションが作れるようになるので、AppleScript Studioを使う意味が無くなってしまいます。 特にWebKitを使いたい場合はCocoaを使用する方が断然有利です。 CocoaプログラミングならAppleScriptより市販の参考書もWebの情報も揃っていますよ。

voice2009
質問者

お礼

coriaka様のおっしゃった通りに打ってみたところ、webviewにwebページが表示されました!!感無量です!! 本当に本当にありがとうございます~!! 自分で本を調べてみても、webサイトで質問しても解決できず、八方塞がりな状態で、プログラムが進まずに悩んでおりました。 これでやっと次の段階に進むことが出来ます。 言葉ではとても言い表せませんが、心から感謝します。 call method命令については全く知らなかったので、coriaka様のおかげで知識がつきました。 Objective-Cに関しても全く未知の領域だったのですが今後のために、是非とも勉強したいと思います。 本当に有難うございました(T_T)(T_T)

その他の回答 (1)

  • mackid
  • ベストアンサー率33% (2688/8094)
回答No.1

この手の質問はアップルのディスカッションボードにされた方がいいと思います。 http://discussions.info.apple.co.jp/

voice2009
質問者

お礼

貴重なご意見有難うございます!!m(_ _)m

関連するQ&A

  • AppleScriptの記述方法で困っています。

    XcodeでAppleScriptを使用してプログラミングしています。 WebKit frameworkを用いて、webviewの機能をつくり、textfieldにURLを入力しリターンキーを押すと、webページがwebviewに表示される仕組みになっています。(takeStringURLFrom:の機能を使っています) そこで、リターンキーを押さずに自動的にwebページが表示されるようにAppleScriptでプログラムを組みたいのですが どのようにプログラムを記述すればいいのか分かりません。 例えばabcという変数にhttp://www.yahoo.co.jp/を入れて set contents of text field "textfield" of window "main" to abc というプログラムを組んでいます。 その後の記述が分からないのですが、どなたか詳しい方がいらっしゃれば アドバイスして頂けないでしょうか。 どうか宜しくお願いします。

  • AppleScriptエラーで困っています!

    XcodeでAppleScriptを使用してプログラミングしています。 InterfaceBuilderでテキストフィールドを作りそこにテキストを入れるプログラムを以下のように記述しました。 set contents of text field "textfield" of window "main" to abc abcには既にテキストデータを入れています。 これを実行しようとすると A " can't go after this identifier. というエラーが出ます。 どこが間違っているのか全く分かりません。 どなたか詳しい方がいらっしゃればどうかアドバイスお願いします。

    • ベストアンサー
    • Mac
  • xcodeでapplescriptを使用してcocoaのコンポーネントにフォーカスの移動を制御する

    xcodeでapplescriptを使用してプログラミングをしています、その際、buttom1をクリックしてtextfield1からtextfield2へフォーカスを移動させる様なコードを書きたいと思っています。 on clicked theObject set focused of text field "tf" of window "wi" end clicked などではフォーカスを移動出来ません。 他の限度では「object名.setFocused」などでフォーカスを移動出来ると思います。 何方かご指導をお願い致します。

    • ベストアンサー
    • Mac
  • AppleScriptがエラーになる

    osx10.8.4  AppleScriptエディタ2.5.1 にて以下の内容でFileMaker11へテキストデータを貼付けようとしましたところ ----------------------- set dbName to "test.fp7" tell application "FileMaker Pro Advanced" activate tell database dbName set contents of field "myText" to "ABC" end tell end tell ----------------------- error "FileMaker Pro Advanced でエラーが起きました:オブジェクトが見つかりません。 ----------------------- とのエラーが出ました。 ちなみにosx10.6.8 AppleScriptエディタ2.3ではテキストは読み込まれます。 osx10.8.4 の仕様が変わったのでしょうか 2・3日前にosのバージョンアップをしましたがそれが関係していたのでしょうか。 どなたかご存知の方がおられましたらご教授下さい。

    • ベストアンサー
    • Mac
  • AppleScriptで「選択」して「選択したものをリネーム」

    AppleScriptで、あるフォルダ内のファイルを解凍してFTPでサーバーにアップするという処理をさせようとしています。 tell application "Finder" activate select folder "ChangeData" of startup disk open selection select document file "DATA20091014.lzh" of folder "CangeData" of startup disk end tell ここまでは「コンパイル」を実行しても正しくプログラムに出来たのですが、ご覧の通り、希望の動作をさせるには記述が足りません。 文法がめちゃくちゃなのを承知で敢えて書きますと、 tell application "Finder" activate select folder "CaspaData" of startup disk select all contents of selection ←選択したフォフダの中身を全て選択する(記述法不明) rename selection to "today.lzh" ←選択したファイルの名前を「today.lzh」に書き替える(記述法不明) select all contents of selection ←選択したフォフダの中身を全て選択する open selection ←ここでファイルが解凍されます select document file "today.lzh" of folder "CaspaData" of startup disk delete selection ←選択したファイルを捨てる select all contents of selection ←選択したフォフダの中身を全て選択する(記述法不明) rename selection to "Data.csv" ←選択したファイルの名前を「Data.csv」に書き替える(記述法不明) end tell "CaspaData"というフォルダの中にはメールソフトが自動的に保存したファイル1個だけが入っているので、こうすることによって、 1. フォルダ内のファイルが何と言う名前でも"today.lzh"に書き替える 2. today.lzhを解凍する 3. today.lzhをゴミ箱に捨てる というプロセスを自動処理し、フォルダ内にはメールソフトが保存したアーカイブの解凍後のファイルだけが残るようにしたいという訳です。 最終的には、このリネームしたCSVをNetFinderというFTPソフト(スクリプト対応ソフトです)で希望の場所にアップロードしたい訳なのですが…。 http://force4u.cocolog-nifty.com/skywalker/2008/01/applescript_ae09.html こんなところを見ると、そこに存在するファイルの名前が何であっても目的の名前に変えることの出来るスクリプトも組めるんだなということは解るんですが、私には知識がなくて内容が理解できないので、スマートではないことは承知の上で「1つしかファイルがないのに"全て選択"で選択してリネーム」という手段をとろうとしています。 ここで、上に「記述法不明」と書いた部分は、Applescriptではどう書けばいいのでしょうか?

    • ベストアンサー
    • Mac
  • mod_rewrite の記述について

    .htaccess に、mod_rewrite の記述を書いて、以下のようなことをしたいのですが、 1.http://www.example.com/abc/ の場合 URLはそのままで、内容は /main/abc/以下 (の同名ファイル)を表示 2.http://www.example.com/main/abc/ の場合 URLは http://www.example.com/abc/ になり、内容は/main/abc/を表示 以前教えていただいた以下の記述でできるのですが、ディレクトリが追加されたら、.htaccess にも追加が必要になってしまいます。 どのように実現すればよいでしょうか? ------------------------------------------------------------ RewriteCond %{REQUEST_URI} ^/main/(.*)$ RewriteCond %{HTTP:My_Redirect} !yes RewriteRule ^main/(.+)$ http://example.com/$1 [QSA,R] RewriteCond %{REQUEST_URI} ^/(abc|aaa|bbb|ccc|ddd)/ RequestHeader set My_Redirect yes RewriteRule ^(.*)$ /main/$1 [QSA,L] ------------------------------------------------------------

  • ファイルメーカーでPDFを開く

    昨日から始めたファイルメーカーで、PDF書類リストを作っています。 ボタンを押せば、そのPDFが開けるようにしたいのですが、やり方がよく分かりません。 具体的には、まずフィールドの一つに、テキストでそのPDF書類のパスを書きました。(例えば、そのフィールド名を”Path”とします。) この変数”Path”をスクリプトに記述して、そのファイルを開きたいのですが、スクリプト定義で「AppleScript実行」を使うのか「AppleEvent送信」を使うのか、またはそのほかのものを使うのかよく分かりません。 また、記述の仕方がいまいち分かりません。 よろしくお願いします。

    • ベストアンサー
    • Mac
  • perlでURLに引数を入れるで表示する方法

    現在以下のURLで正常に表示しています。 http://hoge.jp/i.cgi?id=a これを http://hoge.jp/i.cgi?a で表示させたいと思うのですが、ウエブで調べましたら「METHOD=GETで渡す」方法が現在のやり方 で「コマンドライン引数で渡す」方法に変えたいのですが、perlの記述がいまいちわからず迷ってます。 プログラムはファイルを読み込んで if ("$idno" eq "$id") のこの$idの条件式でヒットさせているものになります。 変数記述等アドバイスいただけますと助かります。 うまく説明できずすみません。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • ファイルメーカーで別のフォルダ内の写真を見たい。

    先日、質問したのですが、その時のご回答の中で教えていただいたやり方を試してみたのですが、途中まではたどり着いたのですが、どうも先に進めません。 その時のご回答をほぼ使用して私が試したやり方を記しますのでどこが間違っているかを教えて下さい。 Macで、ファイルメーカー10です。 1、MacintoshHDに直接、写真が入ったフォルダ「写真」を置きました。 2、FMのフィールドに「テスト」を作りました。 3、「テスト」フィールドに「MacintoshHD:写真」と入力しました。 4、FMのスクリプトを新たに作り「Applescriptを実行」のAppleScript記述に、教えたいただいた下記を記入しました。  set myFolder to contents of field "テスト" of current record as alias  tell application "Finder"  set theFolder to (every item of myFolder) as alias list  open theFolder  end tell 5、「MacintoshHD:写真」と入力した、レコードで上のスクリプトを実行しました。 ご回答では、「デフォルトアプリがプレビューでしたらプレビューが起動してフォルダ内の画像がリスト表示されます」と、ありましたが、プレビューは立ち上がりましたが、「写真」のフォルダではなく、その前にプレビューで見ていた違うフォルダの写真が立ち上がります。 そして「theFolder変数は定義されていません」「不明エラー:-2753]のメッセージが出ます。 どこに問題があるのかわかる方、教えて下さい。

  • web.configファイル内、valueに&を記述するとエラー

    お世話になります。 asp.NETでweb.configファイルを使用しています。 その中で、keyとvalueを記述する際にvalueに、とあるURLを定義したいのですが、URLの中に「&」を含んでいると、エラーになってしまいます。波線が表示され、確か「:がありません・・・」のようなエラーメッセージが表示されます。 valueに&を記述したい時の記述方法をご教授願います。 宜しくお願いします。