2

私はXcodeを始めたばかりで、OSXWebブラウザーを作成しようとしています。

Webビューがロードされているときとロードされていないときを把握したいと思います。私はすでにこことこれに関するAppleDeveloperLibraryの両方から多くのページを見てきました、そしてこれは私が得るものです:

- (void)webViewDidStartLoad:(WebView *)webView {
    //enter code here  
}

そしてもちろん、私も見ましたwebViewDidFinishLoad voidが、これを試してみるとAppDelegate.m何も起こりません。WebビューをAppDelegateに接続しました。理解していることから、ファイル内のプロトコルframeLoadDelegateも使用する必要があります。私の問題は、sに入力すると、存在しないと表示されることです。<>AppDelegate.hwebFrameLoadDelegateProtocol<>webFrameLoadDelegateProtocol

4

2 に答える 2

10

webViewデリゲートを設定していないことが原因のようです。ただし、ヘッダーにプロトコルを追加する必要はありません。代わりに、このコードをどこかに追加する必要があります。applicationDidFinishLaunchingで提案します。

[webView setFrameLoadDelegate:self];

次に、メソッドをオーバーライドできます。それでも問題が解決しない場合は、webViewをヘッダーからIBのwebViewに接続していることを確認してください。また、でwebViewを合成してください.m

最後に、私のオープンソースの例をOSXブラウザーに使用できます。MITライセンスに基づいているので、自由に使用できます。

https://github.com/JosiahOne/basic_cocoa_web_browser

編集

ココアに間違った方法を使用していることに気づきました。代わりにこれらのメソッドを使用してください。

-(void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame
{
    //Did start Load
}

-(void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{
    //Did finish Load
}
于 2012-12-29T20:10:41.087 に答える
4

私の問題は、「<>」に「webFrameLoadDelegateProtocol」と入力すると、「webFrameLoadDelegateProtocol」が存在しないことを通知することです。

WebFrameLoadDelegateプロトコル非公式のプロトコルです。同じように採用することはできません。<webFrameLoadDelegateProtocol>クラスのを省略します@interface

AppDelegate.mでこれを試しても、何も起こりません。WebviewのframeLoadDelegateをAppDelegateに接続しました

WebビューのframeLoadDelegateプロパティをアプリのデリゲートに設定するのはいつですか。

于 2012-12-29T19:26:52.107 に答える