设置自定义类的委托

时间:2010-10-23 13:16:13

标签: iphone

我正在创建一个自定义类,它是UIWebview的子类。但它的委托功能没有被调用。我应该如何设置此类的委托。我知道这是一个基本问题,但如果有人能够回答它,那将是非常好的。提前谢谢。

我的代码:

.h文件

@interface PollackWebView : UIWebView<UIWebViewDelegate> {



}

-(id)initWebview:(CGRect)frame;
@end

.m文件:

@implementation PollackWebView


-(id)initWebview:(CGRect)frame {

    if ((self = [super initWithFrame:frame])) {

    }
    return self;
}

-(void)SetMyDelegate {

    self.delegate = self;

}


- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

    NSLog(@"shouldStartLoadWithRequest");
    if ( navigationType == UIWebViewNavigationTypeLinkClicked ) {

        // do something with [request URL]
        return NO;
    }

    return TRUE;

}

- (void)webViewDidStartLoad:(UIWebView *)webView {

    NSLog(@"webViewDidStartLoad");

}

1 个答案:

答案 0 :(得分:3)

我认为你要做的是什么,你不需要一个子类。在您发布的代码中,您只使用了委托方法,因此不是创建子类:

  • 只需使用普通的UIWebView。
  • 在创建并使webview可见的类中,在Alloc / init UIWebView之后立即将UIWebView的委托设置为self
  • 然后,在创建/显示webview的类的标题中,将<UIWebViewDelegate>添加到@interface行的末尾,就在{
  • 之前
  • 然后将委托方法放在类的实现中。