2011-01-18 1 views
5

私はXcodeで新しいMac OSXアプリケーションを作成しました.Interface Builder経由でWebViewを組み込みましたが、今は読み込むURLをプログラムで教えようとしています。OSX XcodeプロジェクトでWebViewのURLをプログラムで設定する方法はありますか?

  • プロジェクト
  • を作成しますがWebkit.framework
  • は私がすることが必要だと思うものを含めましたそこから続いてInterface Builderで

をWebViewのをインクルード:ここで私が得たどのくらいです

#import <WebKit/WebKit.h> 
@synthesize webView; 
// etc, I think this is all good 

WebViewにアクセスすると、WebViewにアクセスできます自らがロードするURLを教えてくれます。私は努力しています:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
    NSString *urlAddress = @"http://www.example.com/"; 
    NSURL *url = [NSURL URLWithString:urlAddress]; 
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
    [[webView mainFrame] loadRequest:requestObj]; 
} 

しかし、私はInterface Builderでいくつかのものを最初に接続すると思いますか?

私の最終目標は、本質的にはビューベースのアプリケーション(iPhone SDKを使用するのは簡単)であるMac OSXアプリケーションを作成することです。そこから私は自分のローカルの.htmlファイルとローカルのhtdocsフォルダを含めるが、最初のステップはWebViewにどのURLをロードするかを伝えることだ。

ありがとう!

+2

そして、どのようにこれはXcodeのに関連していますか? –

+0

こちらのチュートリアルをご覧ください: [http://vexis.co.uk/blog/2012/08/03/creating-an-xcode-browser-app/](http://vexis.co.uk/blog/2012/08/03/creating-an-xcode-browser-app /) – Seb123

答えて

0

webViewプロパティをIBOutletとして宣言し、それをInterface BuilderのWebViewに接続しましたか?

もしそうでなければ、webViewは設定されておらず、あなたのコードは何もしなくなります。

3

上記のコードは正しいですが、私はそれをテストし、URLを正常にロードしました。あなたもで定義されたコントロールを使用してコードを接続する必要があり、@pulazzoが言うように

//usual #import(s) 
    #import <WebKit/WebKit.h> 

    @interface myAppDelegate : NSObject <NSApplicationDelegate> { 
     WebView *myWebView; 
     //other instance variables 
    } 

    @property (retain, nonatomic) IBOutlet WebView *myWebView; 
    //other properties and methods 
    @end 

は、私はあなたがあなたのヘッダファイルで宣言されたものかわからないが、あなたはこのような何かを持っている必要がありますインタフェースビルダ。
これを行うには、Interface Builderでアプリケーションデリゲートクラスを見つけて右クリック(またはcontrol-クリック)し、アウトレットのリストでmyWebViewを見つける必要があります。 myWebViewと同じ行の円からWebビューにドラッグします。私の説明は大したものではないと思うので、アップルのデベロッパーサイトでInterface Builder Quick Start Guideを読んでいるほうがもっと幸運でしょう。

実装ファイルでは、新しいプロパティのゲッターとセッターメソッドを実装する必要があります。myWebViewあなた(おそらく)あなただけ@synthesizeを使用することができますので、これに任意のカスタマイズを行う必要はありません。

@implementation myAppDelegate 
@synthesize window; 
@synthesize myWebView; 
//your function etc 
@end 
0

はい、あなたは右です!彼はこのように宣言:

IBOutlet WebView webView; 

それはあなたがちょうどあなたのAppControllerの実装でawakeFromNibメソッドを使用することができます 、@sinthesizeで必要なコーディングは必要ありません。

-(void)awakeFromNib{ 
    //etc etc 
} 
関連する問題