Как правильно использовать делегат webkit для запуска и остановки счетчика, OS X, OBJ-C

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

  •  12-12-2019
  •  | 
  •  

Вопрос

Кажется, что это должно быть так просто, но я новичок в Objective-C.Я хочу просто запускать и останавливать счетчик, пока загружается мой WebView.Это приложение для OS X.Все, что я искал, — это Cocoa Touch, я использую только Cocoa.В моем AppDelegate.m у меня есть методы, которые запускают и останавливают счетчик (это работает, я это проверял).

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

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

У меня также есть два метода делегата для webView, которые я переопределил.

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

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

По сути, я хотел бы знать, как мне заставить свой webView установить делегата.Обычно мне нужно что-то сделать в файле .h, но я не могу найти никаких ссылок, в которых перечислялось бы, какой делегат webKit подойдет для этого.Любая помощь будет оценена по достоинству.

Это было полезно?

Решение

А

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

и

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

методы являются частью Протокол WebFrameLoadDelegate.

Веб-представление имеет frameLoadDelegate свойство.Установите его на свой WebView экземпляр, позвонив [webView setFrameLoadDelegate:delegate], где delegate — это NSObject, который реализует два метода (вам проще всего будет сделать self FrameLoadDelegate здесь).Поскольку WebFrameLoadDelegate является неформальным протоколом, delegate должен объявить два метода в своем файле .h, а не добавлять <WebFrameLoadDelegate> к объявлению своего класса, как в формальном протоколе.

Другие советы

Вы можете переопределить эти методы делегирования 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.


 }
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top