cocoaアプリで悩んでます

このQ&Aのポイント
  • Mac初心者がcocoaAPI、Xcode3.0、InterfaceBuilder3.0を利用してアプリケーションを作っています。
  • アプリの概要は、実行時に現れるダイアログにhtmlファイルをドラッグ&ドロップで貼り付けて表示しつつ、そのファイルのフルパスを表示することです。
  • 現状ではボタンをクリックしなければ<2>に進めない仕様ですが、ドラッグ&ドロップした時点で<2>に進むようにしたいとのことです。また、WebViewクラスのDataDelegateを利用することができるが、設定方法や受け取ったメッセージの活用方法について詳しく説明が欲しいとのことです。
回答を見る
  • ベストアンサー

cocoaアプリで悩んでます。

cocoaアプリで悩んでます。 よろしくお願いします。 Mac初心者です。 現在、cocoaAPI、Xcode3.0、InterfaceBuilder3.0(以下IB)を使ってアプリケーションを作っています。 <アプリ概要> <1>実行時に現れるダイアログにhtmlファイルをドラッグ&ドロップで貼り付けて表示。 <2>そのファイルがあるフルパスを表示。 <現状> 上記内容は実装できたのですが、<1>から<2>に進むためには設置したボタンをクリックしなければいけないような仕様になっています。 これをドラッグ&ドロップした時点で<2>の状態に進むようにしたいのです。 できるだけIBを利用したいと思っています。 WebViewクラスにはDownloadDelegate等のデリゲートが準備されているので、これを使うべきなのかなと思っているのですが、IB上で設置したインスタンスからデリゲートをどのように設定するのか、設定されたデリゲートに対するメッセージをどのように活用するのか(メソッドの引数には受け取ったメッセージを記述すべき?、どう書けば良いのか?、等)よく理解できていません。 デリゲートでメッセージを受け取った側のクラスのメソッドはどのように書けば良いかサンプルコードを記述して頂けるのであればうれしい限りです。 どうぞよろしくお願いしいます。

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

  • ベストアンサー
  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

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]]; } こんなふうに記述します。

totogege
質問者

お礼

ありがとうございました。 おかげさまで作りたかったモノができました。

関連するQ&A

  • IBのオブジェクトにXcodeからコードでアクセスするにはどうすればよ

    IBのオブジェクトにXcodeからコードでアクセスするにはどうすればよいのでしょうか? InterfaceBuilder上で配置したビューや、すでにあるウィンドウなどの、 コード上で定義されていないオブジェクトに、コードでアクセスしたいのですが、やり方がわかりません。。。 例えば、最初にXcodeで新規ファイルを作ると、InterFaceBuilderのdocウィンドウ内にwindowのアイコンがすでに作られていますよね?  このNSWindowインスタンス(キーウィンドウ)から、ある別のインスタンスにデリゲートする際、 InterfaceBuilderでwindowアイコンから、その別のインスタンスにデリゲートの接続線を引っ張ることで実現していますが、 そうではなく、コードのみで接続できるのかどうか、ということが知りたいです。 ご存知の方、教えてもらえると助かります!

  • cocoa:ファイルの読み込み

    教えていただけますか? cocoaを使用して、ファイルを読み込みたいのですが、どのクラスのどのメソッドになるでしょうか? •ファイルはバイナリ •ファイルの一部を読み込みたい •読み込み開始位置を指定したい NSDataになるのでしょうか? それとも c の fread でするしかないですか? よろしくおねがいします。

  • Xcode ドラッグでファイルをコピーするアプリ

    プログラミング初心者です。Mac OSXでXcode3.2とInterfacebuilderを使用し、図のようなアプリケーションを作成したいと思っています。ファイルをウィンドウにドラッグするとチェックされている所定のフォルダ(A、B、C…)へドラッグしたファイルがコピーされるというものですが、書籍やネットで調べてもなかなかやり方がわかりません。どなたかやり方やヒント等をご教示頂けますと大変助かります。よろしくお願いいたします。

    • ベストアンサー
    • Mac
  • CocoaのNSTableViewについて

    CocoaのNSTableViewについて CocoaのNSTableViewではまっています。 <環境> OS: Mac OS X(10.5.8) XCode: 3.0 (IDE: 921.0, Core: 921.0, ToolSupport: 893.0) 以下の手順で作業をしました。 (1) Interface Builderで「ライブラリ」から、「Object」をMyDocument.nibにドラッグ&ドロップし、 クラス名をMyControllerとする (2) 上記MyControllerをクラスファイルに出力(メニューから「File」ー「Write Class File」) (3) ウィンドウにテーブルビューを配置して、データソースをMyControllerに接続 → テーブルビューの右クリックで「Outlets」ー「dataSource」が「MyContoller」になっている (4) テーブルビューの識別子を設定する 「Table Column Attribute」の「Identifier」で設定 → とりあえず「Column1」,「Column2」とする(2列設定) (5) XCodeで、MyControllerに以下を実装(ヘッダは省略) - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView { return 1; } - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { if([[aTableColumn identifier] isEqual:@"Column1"]){ // 1列目 return @"AAAA"; } else { // 2列目 return @"BBBB"; } } ※参考URL http://take-blizzard.cocolog-nifty.com/blog/2009/02/cocoanstablevie.html こうすると、Windowが表示されたときに、テーブルビューに1行「AAAA, BBBB」という行が表示されると思っていますが 表示がなされませんでした。 「Document based Application」で作成していますが、新しいウィンドウを開いても何も表示されません。 また、aTableViewにブレークポイントを張っていますが、止まることはありませんでした。 上記に関して以下の質問です。 <1> AppControllerの実体(インスタンス?)は、データソースの接続を行っているので自動で生成されるということでよいのでしょうか? それとも、どこかで自分でallocが必要でしょうか? <2> 上記のようにデータソースとして接続したクラスの中でブレイクポイントで止めることは可能でしょうか? そのほか、上記でおかしい点/作業の不足点があればご指摘いただけないでしょうか? 以上、よろしくお願いいたします。

  • androidアプリから特定のブラウザを開く方法

    アンドロイドアプリからIntentやWebViewなどでウェブアプリケーションを開く際 特定のブラウザを指定して開く方法が見つからず質問させていただきます。 他のクラスやメソッドでもかまいません。 よろしくお願いいたします。

  • 特定のアプリにファイルを渡す方法

    特定のアプリにファイルを渡す方法 読める、読めないは別にしてドラッグ&ドロップの様にファイルを渡したいのですがその方法が分かりません。 何か強制的に渡せるような関数があるのでしょうか? VB6でXPです。

  • Access ファイルかフォルダの判定

    お世話になります。 Access2010 フォーム上にActiveXのProgressBarコントロールを設置し、 そこにドラッグ&ドロップされた画像を、フォーム上のイメージ コントロールに表示するようにしました。 また、複数ファイルをドラッグ&ドロップされた場合は、エラーメッセージ を表示するようにしてます。 ここまでは問題ありません。 ただ、フォルダごとドラッグ&ドロップされた際にも、エラーメッセージを 表示させたいのですが、やり方がわかりません。 ドロップ&ドロップされたファイル、もしくはフォルダのパスは取得して いるので、そのパスからフォルダか否か判定することは可能でしょうか。 ご教示の程、宜しくお願い致します。

  • コンソールアプリの起動パラメータ について

    ・環境   XP, Borland C++ Compiler 5.5 ・使用言語   C++ コンソールアプリを作成しています。 コンパイルして出来上がったEXEのアイコンに、何かファイルを ドラッグ&ドロップすると、そのファイルがパラメータとなって EXEが起動されると思うのですが、ここで疑問があります。 (1)最大パラメータ数というのはどこかに規定されているのでしょうか。 (2)複数のファイルをドラッグ&ドロップした時に、EXEに渡される順番というのはどのように決定されるのでしょうか。 よろしくお願い致します。

  • 単純なiPhoneアプリ開発について

    iPhoneアプリ開発、XCodeについて iPhoneアプリ開発ど素人です。 現在SingleView~で、画像•ボタン•ラベルを組み合わせた単純なアプリを作っています。 トップ画面から、ボタンを押すと 他の画面(画面Aとします)をmodalによる画面遷移で表示するようにしています。 次に画面Aにあるボタンを押すと、画面A内にあるラベルの文字が変化するようにしたかったのですが、controlを押しながらラベルをViewController.hにドラッグ(?)しても反映されませんでした(>_<) 調べた感じでは、新しいクラスなどが必要のようだったんですが、いまいちわかりません(>_<) 詳しい方がいらっしゃれば、ど素人向けにわかりやすく教えてください。 お願いします。

  • x-アプリでの取り込み時動作について

    mp3等をドラッグアンドドロップでx-アプリへ登録すると、下記のようなダイアログが出てきます。 全て複製するほどの容量が無い、複製する必要性を感じないためいいえを選んでいるのですが、取り込みを行おうとすると毎回表示されて邪魔に感じています。 ドラッグアンドドロップで取り込む際にこのダイアログを表示させない方法はあるのでしょうか。 必要であればレジストリ等をいじるのも仕方ないと考えています。 選択されたファイルをx-アプリが管理するファイルの保存場所にコピー(複製)してから取り込みますか? [はい]をクリックすると、ファイルの保存場所にコピー(複製)してから取り込みます。 [いいえ]をクリックすると、ファイルをコピー(複製)しないで取り込みます。 この場合、元のファイルを削除するとx-アプリへの取り込みが無効となります。 ※OKWaveより補足:「ソニー製品」についての質問です。

専門家に質問してみよう