6

Mac アプリの開発を始めたばかりで、アプリの起動時に WebView に URL を設定したいのですが、私のコードは次のとおりです。

AppDelegate.h

#import <Cocoa/Cocoa.h>
#import <WebKit/WebKit.h>

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

@property

(retain, nonatomic) IBOutlet WebView *myWebView;

//other properties and methods

@end

AppDelegate.m :

 #import "AppDelegate.h"
#import <WebKit/WebKit.h>

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    NSString *urlText = @"http://google.com";
    [[self.myWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlText]]];
    return;
    // Insert code here to initialize your application
}

@end

WebView (OSX プロジェクト) で起動時に URL をロードする方法は?

コードは機能すると思いますが、Interface Builder でコードを WebView に接続しようとすると、アウトレットのリストに「Web ビュー」が見つかりません。前回の投稿に続いてコードを更新しましたが、まだ機能しません。返信ありがとうございます。

4

2 に答える 2

8

WebKit フレームワークを追加する必要があります。ここに画像の説明を入力

#import <WebKit/WebKit.h>

ここに画像の説明を入力

于 2013-04-10T09:41:09.493 に答える
6

ここで何が問題なのかを確認するのは難しいので、推測で...

IB で接続をどちらにドラッグしていますか?

インスペクターに表示されているアウトレットから Web ビューにドラッグするアウトレットを接続するには、次のようにします。

つながりを作る

逆に Web ビューからアウトラインの App Delegate にドラッグすると、アクションを接続しようとしています。

コード、インスタンス変数にも問題があります。

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

プロパティでは使用されません:

@property (retain, nonatomic) IBOutlet WebView *myWebView;

プロパティが自動的に合成されるため、インスタンス変数が作成されます_myWebView。この効果に対するコンパイラの警告が表示されるはずです。

これは、次のステートメントを意味します。

[[myWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlText]]];

はあなたが期待するmyWebViewことnilをしませんWebView。プロパティをself.myWebView次のように参照する必要があります。

[[self.myWebView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlText]]];

これらの変更により、Web ビューに Google が表示されるはずです。

HTH

于 2013-04-10T10:22:05.603 に答える