Come utilizzare correttamente il delegato WebKit per iniziare e fermare uno spinner, OS X, OBJ-C

StackOverflow https://stackoverflow.com//questions/12679890

  •  12-12-2019
  •  | 
  •  

Domanda

Sembra che questo dovrebbe essere così semplice, ma sono abbastanza nuovo all'obiettivo-c.Quello che voglio fare è semplicemente iniziare e fermare uno spinner mentre il mio Webview sta caricando.Questa è un'app per OS X.Tutto ciò che ho cercato è per il tocco di cacao, sto usando solo il cacao.Nel mio AppDelegate.m devo metodi che iniziano e fermano lo spinner (questo funziona, l'ho testato).

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

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

Ho anche i due metodi delegati per WebView, che ho invaso.

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

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

Fondamentalmente, vorrei sapere come ottengo il mio Webview per impostare il suo delegato.Di solito devo fare qualcosa nel file .h, ma non riesco a trovare alcun riferimento che elenca ciò che il Delegato WebKit è che funzionerebbe per questo.Qualsiasi aiuto sarebbe apprezzato.

È stato utile?

Soluzione

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

e

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

Metodi fanno parte del Protocollo di webframeloaddelegate .

Webview ha una proprietà frameLoadDelegate.Impostalo sull'istanza WebView chiamando [webView setFrameLoadDelegate:delegate], in cui delegate è un Nsobject che implementa i due metodi (sarà più facile per te rendere qui self il frameloadelegato qui).Dal momento che WebfraMeloadDelegate è un protocollo informale, delegate dovrebbe dichiarare i due metodi nel suo file .h, anziché aggiungere <WebFrameLoadDelegate> alla sua dichiarazione di classe come con un protocollo formale.

Altri suggerimenti

È possibile sovrascrivere questi metodi Delegate WebView per iniziare e fermare uno spinner.

- (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.


 }
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top