0

この方法の何が問題になっていますか?

- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame {
[activityIndicator stopAnimation:self];
}

Circular Progress Indicator()を停止したいactivityIndicator。しかし、に何か問題があり- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frameます。私はiOSではなくmacosx用にコーディングしています。代表団から何か聞いたのですが、どういう意味ですか?

4

1 に答える 1

1

UIWebView がデリゲートを設定していることを確認してください。デリゲートの設定とは、基本的に、イベント (タップ、ジェスチャ、またはこの場合は webView の読み込みなど) を処理するユーザーをプログラムに伝えることです。したがって、イベントが発生すると、デリゲートに通知され、デリゲートはそれを処理できます。コードをもっと投稿すると役立つかもしれませんが、問題の UIWebView の宣言を確認します。割り当てて初期化したら、次のようにデリゲートを self に設定してください (このメソッドが同じクラスにあると仮定します)。

UIWebView *myWebView = [[UIWebView alloc] init];
[myWebView setDelegate:self];

デリゲートを設定していない場合は、イベントが発生しており、誰もそれらを受け取って処理していません。使用しているメソッドは、任意の webView によって送信される特定のイベントを待機しています。イベント メッセージが送信されると、トリガーされた webView がパラメーターとして渡されます。いずれにせよ、ログステートメントを入力して、メソッドに入っていることを確認してください。イベントメッセージを受信して​​いるかどうかがわかります。

- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame {
    NSLog(@"Did finish loading..."); 
    [activityIndicator stopAnimation:self];
}

注: これは iOS の経験によるものですが、Mac OS でも機能するはずです。メソッドが呼び出されているかどうか、ログの結果を教えてください。

于 2012-07-31T23:54:12.657 に答える