4

これはとても単純なはずのようですが、私はObjective-Cではかなり新しいです。私がやりたいのは、WebViewのロード中にスピナーを起動および停止することです。これはOSXアプリです。私が検索したものはすべてCocoaTouch用で、Cocoaだけを使用しています。私のAppDelegate.mでは、スピナーを開始および停止するメソッドを使用する必要があります(これは機能しますが、テストしました)。

-(IBAction)goSpin:(id)sender
{
    [spinner startAnimation:self];
}

-(IBAction)stopSpin:(id)sender
{
    [spinner stopAnimation:self];
}

また、webViewの2つのデリゲートメソッドがありますが、これを上書きしました。

-(void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame
{
    [self goSpin:self];
}

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

基本的に、webViewにデリゲートを設定する方法を知りたいです。通常、私は.hファイルで何かをしなければなりませんが、webKitデリゲートがこれで機能するものをリストした参照を見つけることができません。どんな助けでもいただければ幸いです。

4

2 に答える 2

9

The

-(void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame

-(void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame

メソッドはWebFrameLoadDelegateプロトコルの一部です。

WebViewにはframeLoadDelegateプロパティがあります。WebViewを呼び出してインスタンスに設定します[webView setFrameLoadDelegate:delegate]。ここdelegateで、は2つのメソッドを実装するNSObjectです(selfここでframeLoadDelegateを作成するのが最も簡単です)。WebFrameLoadDelegateは非公式のプロトコルであるため、正式なプロトコルのようにクラス宣言にdelegate追加するのではなく、.hファイルで2つのメソッドを宣言する必要があります。<WebFrameLoadDelegate>

于 2012-11-17T10:28:08.177 に答える
-3

これらのWebviewデリゲートメソッドをオーバーライドして、スピナーを開始および停止できます。

- (void)webViewDidStartLoad:(UIWebView *)webView{

// In this method you have to start a spinner.

}
- (void)webViewDidFinishLoad:(UIWebView *)webView{

   // In this method you have to stop the current  spinner.


}
 - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{

      // In this method you have to stop the current  spinner.


 }
于 2012-10-01T19:44:16.003 に答える