2011-02-25 62 views

回答

2

我不知道你是怎么打算连接一个IBOutlet或IBAction为没有后盾的笔尖,但您可以手动创建所需的位。

IBActions只是接口构建器与实现装饰选择器合同的方式。您可以手动创建绑定到一个选择与下面的代码示例的方法:

[Export ("someMethod:")] 
public void SomeMethod (int arg) { 
} 

IBOutlets是装修实例变量(高德)正好接口建设者的方式。 Ivars被monodouch代码生成器公开为属性,因此我们可以懒洋洋地查询本机代理支持存储,并且不需要在每个转换点编组值。您可以手动创建的代理类实例变量与下面的代码示例:

[Connect("varname")] 
private NSObject varname { 
    get { 
     return ((NSObject) (this.GetNativeField("varname"))); 
    } 
    set { 
     this.SetNativeField("varname", value); 
    } 
} 

细心的读者会发现,MT代码生成器生成略有不同的代码:如果您吊着任何国家

private NSObject __mt_varname; 
[Connect("varname")] 
private NSObject varname { 
    get { 
     this.__mt_varname = ((NSObject) (this.GetNativeField("varname"))); 
      return this.__mt_varname; 
    } 
    set { 
      this.__mt_varname = value; 
     this.SetNativeField("varname", value); 
    } 
} 

关闭要存储在本地字段中的对象,则还需要使用此构造,因此垃圾回收器会看到引用。