如何绑定到Xamarin.iOS中的基类型和协议

如何绑定到Xamarin.iOS中的基类型和协议,xamarin.ios,xamarin,Xamarin.ios,Xamarin,我正在尝试构建一个利用Cordova库的xamarin应用程序。我一直在为我需要的库的组件开发自己的绑定,到目前为止,它工作得很好 不过今天我遇到了一个有趣的问题。我试图覆盖CDVViewContainer上的webView:shouldStartLoadWithRequest:方法 我已经看过了,还有Xamarin。这两种协议都注意到协议类似于接口,如《高级绑定指南》所示 @interface UITextField : UIControl <UITextInput> { }

我正在尝试构建一个利用Cordova库的xamarin应用程序。我一直在为我需要的库的组件开发自己的绑定,到目前为止,它工作得很好

不过今天我遇到了一个有趣的问题。我试图覆盖
CDVViewContainer
上的
webView:shouldStartLoadWithRequest:
方法

我已经看过了,还有Xamarin。这两种协议都注意到协议类似于接口,如《高级绑定指南》所示

@interface UITextField : UIControl <UITextInput> {

}
基于此,我进行了翻译

@interface CDVViewController : UIViewController <UIWebViewDelegate, CDVScreenOrientationDelegate>{

}
但是当我尝试创建绑定库时,我得到了

Cordova.cs(26,39): error CS0527L Type `MonoTouch.UIKit.UIWebViewDelegate' in interface list is not an interface. 

我检查了苹果的规格,然后。有人能帮我找出我做错了什么吗?

这是对该工具的限制。只有在包含自己的协议定义时,才能使用该语法来采用协议。当采用已在外部定义中定义的协议时,它不起作用。

这是不幸的,因为当我尝试为phonegap执行本机绑定时,在许多类中,它们从基类继承,并实现多个协议。到目前为止,我看到的解决这个问题的最好方法是将协议中的所有方法添加到绑定类定义中。似乎在扩展类时,调用基方法只是再次调用原始方法,而原始方法调用基方法。。。重复一遍直到出现错误。也许我没有完全理解答案。您是说,只有当您采用自定义协议,因此在同一api定义中包含协议的定义时,这才有效吗?我正在采用UIGestureRecognitzerDelegate,并且得到了相同的错误,但是我将绑定从程序集复制到my binding类中,它仍然无法解决错误。
[BaseType (typeof (UIViewController))]
interface CDVViewController : UIWebViewDelegate {

}
Cordova.cs(26,39): error CS0527L Type `MonoTouch.UIKit.UIWebViewDelegate' in interface list is not an interface.