• ベストアンサー

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

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

  • ベストアンサー
  • 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