gpt4 book ai didi

xcode - Monodevelop 2.8、XCode 3.2.6、界面生成器 : Outlets and Actions

转载 作者:行者123 更新时间:2023-12-04 18:49:53 26 4
gpt4 key购买 nike

编辑:由于我还没有安装 XCode 4,我想知道 MD 2.8 是否与 XCode 3.2.6 完全兼容。特别是,我能否使用 MT documentation 中描述的新程序连接 Outlets 和 Actions? ?

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

MD 2.6 当我创建一个新的 UIViewController 时,该 Controller 显示如下:

  • Controller.xib <- 在同一棵树内
  • Controller .xib.cs
  • Controller.xib.designer.cs

  • 此外,如果我打开一个 xib 文件 Controller.xib,则只会打开 Interface Builder (IB)。如果我将 socket 添加到 xib,则 socket 在 Controller.xib.designer.cs 中可见。

    MD 2.8 当我创建一个新的 UIViewController 时,该 Controller 显示如下:
  • Controller.xib <- 在同一棵树内不再有
  • Controller .cs
  • Controller.designer.cs

  • 所以我有两个文件而不是一个。

    另外,如果我打开一个 xib 文件,Controller.xib、IB 和 Xcode 都会打开。如果我将 socket 添加到 xib,则 socket 在设计器中不可见。

    有什么建议么?

    最佳答案

    MonoDevelop 2.8 引入了新的 xib 设计器模型以支持 Xcode 4。

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

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

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

    这个新模型除了支持 Xcode 4 之外还有几个好处:

  • 现在可以让多个 xib 文件引用同一个类。
  • 该项目包含所有内容资源和其他 xib 文件,因此可以从 Interface Builder
  • 轻松引用它们
  • Interface Builder 将“看到”在 C# 用户类部分和基类上编写的 socket ,而不仅仅是设计器类部分。

  • 此外,现在手动编写 socket 要容易得多。只需申请 Outlet属性的属性,例如
    [Outlet ("someView")]
    UIView SomeView {get; set; }

    不幸的是,新模型意味着 MonoDevelop 不再与 Interface Builder 3.2.x 中的导出和操作的创建集成。我的建议是升级到 Xcode 4。加载和编辑 pre-MD 2.8 项目应该可以正常工作。

    请参见
    http://docs.xamarin.com/ios/tutorials/transitioning_from_xcode_3_to_xcode_4

    关于xcode - Monodevelop 2.8、XCode 3.2.6、界面生成器 : Outlets and Actions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7698167/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com