So verwenden Sie den Webkit-Delegaten richtig zum Starten und Stoppen eines Spinners, OS X, OBJ-C

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

  •  12-12-2019
  •  | 
  •  

Frage

Es scheint, als ob das so einfach sein sollte, aber ich bin ziemlich neu bei Objective-C.Ich möchte einfach einen Spinner starten und stoppen, während meine Webansicht geladen wird.Dies ist eine OS X-App.Alles, wonach ich gesucht habe, ist für Cocoa Touch, ich verwende nur Cocoa.In meinem App-Delegat.m Ich muss Methoden verwenden, die den Spinner starten und stoppen (Das funktioniert, ich habe es getestet).

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

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

Ich habe auch die beiden Delegatenmethoden für WebView, die ich überschrieben habe.

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

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

Grundsätzlich würde ich gerne wissen, wie ich mein WebView dazu bringe, seinen Delegaten festzulegen.Normalerweise muss ich etwas in der tun.h-Datei, aber ich kann keine Referenzen finden, die auflisten, was der WebKit-Delegat ist, der dafür funktionieren würde.Jede Hilfe wäre dankbar.

War es hilfreich?

Lösung

Der

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

und

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

methoden sind Teil der WebFrameLoadDelegate-Protokoll.

Webansicht hat eine frameLoadDelegate Eigenschaft.Stellen Sie es auf Ihre WebView instanz durch Aufruf [webView setFrameLoadDelegate:delegate], wo delegate ist ein NSObject, das die beiden Methoden implementiert (es wird für Sie am einfachsten zu machen sein self das frameLoadDelegate hier).Da WebFrameLoadDelegate ein informelles Protokoll ist, delegate sollte die beiden Methoden in its deklarieren.h-Datei, anstatt hinzuzufügen <WebFrameLoadDelegate> zu seiner Klassendeklaration wie bei einem formalen Protokoll.

Andere Tipps

Sie können diese WebView-Delegierten-Methoden überschreiben, um einen Spinner zu starten und zu stoppen. generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top