こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

cocoaアプリで悩んでます。

cocoaアプリで悩んでます。

よろしくお願いします。

Mac初心者です。
現在、cocoaAPI、Xcode3.0、InterfaceBuilder3.0(以下IB)を使ってアプリケーションを作っています。

<アプリ概要>
<1>実行時に現れるダイアログにhtmlファイルをドラッグ&ドロップで貼り付けて表示。
<2>そのファイルがあるフルパスを表示。

<現状>
上記内容は実装できたのですが、<1>から<2>に進むためには設置したボタンをクリックしなければいけないような仕様になっています。

これをドラッグ&ドロップした時点で<2>の状態に進むようにしたいのです。
できるだけIBを利用したいと思っています。
WebViewクラスにはDownloadDelegate等のデリゲートが準備されているので、これを使うべきなのかなと思っているのですが、IB上で設置したインスタンスからデリゲートをどのように設定するのか、設定されたデリゲートに対するメッセージをどのように活用するのか(メソッドの引数には受け取ったメッセージを記述すべき?、どう書けば良いのか?、等)よく理解できていません。

デリゲートでメッセージを受け取った側のクラスのメソッドはどのように書けば良いかサンプルコードを記述して頂けるのであればうれしい限りです。

どうぞよろしくお願いしいます。

投稿日時 - 2010-08-08 01:59:38

QNo.6094405

すぐに回答ほしいです

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

Delegateは、「WebFrameLoadDelegate」を使います。
それの「- (void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame」というデレゲートメソッドがいいのではないでしょうか?
Delegateの設定は、Interface Builderで行えます。WebViewからリンクを引っ張り出して、Delegateメソッドを書きたいインスタンスに接続すれば、Outletの候補が表示されるので、その中から「WebFrameLoadDelegate」を選択します。

- (void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame
{
[urlField setStringValue: [sender mainFrameURL]];
}

こんなふうに記述します。

投稿日時 - 2010-08-08 23:45:33

お礼

ありがとうございました。

おかげさまで作りたかったモノができました。

投稿日時 - 2010-08-10 19:48:33

ANo.1

このQ&Aは役に立ちましたか?

10人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問