看起来这应该是这么简单,但我在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 Protocol的一部分.
WebView具有frameLoadDelegate属性.通过调用[webView setFrameLoadDelegate:delegate]在WebView实例上设置它,其中delegate是一个实现这两种方法的NSObject(最简单的方法是在这里使自己成为frameLoadDelegate).由于WebFrameLoadDelegate是一个非正式协议,委托应该在其.h文件中声明这两个方法,而不是添加< WebFrameLoadDelegate>与正式协议一样的类声明.