看起来这应该很简单,但我对 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