Monodevelop 2.8,XCode 3.2.6,接口生成器:出口和动作

Monodevelop 2.8,XCode 3.2.6,接口生成器:出口和动作,xcode,interface-builder,xamarin.ios,monodevelop,outlet,Xcode,Interface Builder,Xamarin.ios,Monodevelop,Outlet,编辑:因为我还没有安装XCode 4,我想知道MD2.8是否与XCode 3.2.6完全兼容。特别是,我是否能够使用中描述的新程序连接插座和操作 我刚刚安装了MonoDevelop(MD)2.8。这似乎不起我所期待的作用 在MD 2.6中,当我创建一个新的UIViewController时,该控制器如下所示: Controller.xibMonoDevelop 2.8引入了一个新的xib设计器模型,以支持Xcode 4 集成在Xcode 4中的Interface Builder不再支持在xib

编辑:因为我还没有安装XCode 4,我想知道MD2.8是否与XCode 3.2.6完全兼容。特别是,我是否能够使用中描述的新程序连接插座和操作

我刚刚安装了MonoDevelop(MD)2.8。这似乎不起我所期待的作用

在MD 2.6中,当我创建一个新的UIViewController时,该控制器如下所示:


  • Controller.xibMonoDevelop 2.8引入了一个新的xib设计器模型,以支持Xcode 4

    集成在Xcode 4中的Interface Builder不再支持在xib文件中定义类、出口和操作。这意味着MonoDevelop不再可能使用从xib文件生成*.xib.designer.cs文件的模型。相反,Interface Builder从Objective-C源代码中读取出口和操作。MonoDevelop对此的解决方案是将C#类同步到Objective-C存根

    从MonoDevelop 2.8打开xib文件时,MonoDevelop会创建一个临时Xcode项目,其中Objective-C存根镜像所有暴露于Objective-C的C#类,即继承自NSObject并使用
    [Register(“SomeName”)]
    属性显式注册的类。然后,它在该项目的上下文中打开xib文件,以便Interface Builder可以看到所有可用的类型、出口以及对它们的操作。如果使用Xcode 4的控制拖动系统在Xcode 4中添加了出口和动作,这些出口和动作将自动导入MonoDevelop中的*.designer.cs文件中

    这意味着设计器文件不再从其他文件生成,而是存储信息的实际位置。现在,设计器文件与类关联,而不是与xib关联

    这种新型号在支持Xcode 4的顶部有几个正面:

    • 现在可以让多个xib文件引用同一个类
    • 该项目包含所有内容资源和其他xib文件,因此可以轻松地从Interface Builder中引用它们
    • 界面生成器将“看到”写在C#用户类部件和基类上的输出,而不仅仅是设计器类部件
    此外,现在手动编写Outlet要容易得多。例如,只需将
    Outlet
    属性应用于属性

    [Outlet ("someView")]
    UIView SomeView {get; set; }
    
    不幸的是,新模型意味着MonoDevelop不再与Interface Builder 3.2.x中的插座和操作的创建集成。我的建议是升级到Xcode 4。加载和编辑MD 2.8之前的项目应该可以正常工作

    请看

    我还不太熟悉MonoDevelop等,但您是否注意到有关MonoDevelop和MonoTouch现在使用Xcode 4的博客条目?非常感谢您的回复。非常有用。这是否意味着在升级到MD 2.8和Xcode 4的项目中,使用MD 2.6和Xcode 3生成的XIB将保持旧格式并工作,直到我需要更改某些内容?