代码之家  ›  专栏  ›  技术社区  ›  pankaj

设置自定义类的委托

  •  0
  • pankaj  · 技术社区  · 14 年前

    我的代码:

    @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 回复  |  直到 14 年前
        1
  •  3
  •   Jonathan.    14 年前

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

    • 只需使用普通的UIWebView。
    • 在创建并使webview可见的类中,将UIWebView的委托设置为 self 就在您允许/init UIWebView之后。
    • 然后在创建/使可见的类的头中添加 <UIWebViewDelegate> 到最后 @interface {
    • 然后将委托方法放入类的实现中。