Monodevelop 2.8、XCode 3.2.6、界面生成器:出口和操作

2024-02-20

编辑:由于我还没有安装 XCode 4,我想知道 MD 2.8 是否与 XCode 3.2.6 完全兼容。特别是,我是否能够将插座和操作与中描述的新过程连接起来机器翻译文档 http://docs.xamarin.com/ios/tutorials/transitioning_from_xcode_3_to_xcode_4#Outlets_and_Actions_Review?

我刚刚安装了 MonoDevelop (MD) 2.8。它似乎没有按我的预期工作。

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

  • Controller.xib <- inside the same tree
    • 控制器.xib.cs
    • Controller.xib.designer.cs

此外,如果我打开 xib 文件 Controller.xib,则仅打开 Interface Builder (IB)。如果我将插座添加到 xib,则插座在 Controller.xib.designer.cs 中可见。

In MD 2.8当我创建一个新的 UIViewController 时,该控制器的显示如下:

  • Controller.xib
  • Controller.cs
    • 控制器.designer.cs

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

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

有什么建议么?


MonoDevelop 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 中添加插座和操作,它们会自动导入回 MonoDevelop 中的 *.designer.cs 文件中。

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

除了支持 Xcode 4 之外,这个新模型还有几个优点:

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

此外,现在手动编写出口更加容易。只需应用Outlet属性的属性,例如

[Outlet ("someView")]
UIView SomeView {get; set; }

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Monodevelop 2.8、XCode 3.2.6、界面生成器:出口和操作 的相关文章

  • Xcode 7 调试器不会中断内联标头函数

    过去五年我一直在各种 C 项目中使用 Xcode 没有出现这个问题 今天 我打开了一个较旧的项目 大约 2 年前 并尝试通过在该函数中放置一个活动断点来调试头文件中的内联函数 由于某种原因 调试器不会中断此代码 但是 如果我在调用该函数的
  • 为什么我的唯一设备 ID 发生了变化?

    我已经使用以下方法大约一个月了 没有任何问题 即使卸载应用程序后 设备 ID 仍保持不变 最近我注意到我的设备 ID 发生了变化 我最近在 Xcode6 上做了很多应用程序的构建 这可能是一个原因吗 我希望我确切地知道它什么时候发生变化 这
  • 如何在 Objective-C + Cocoa 中创建自定义无边框 NSWindow?

    首先我要说的是 这是我的第一个真正的 Cocoa 应用程序 这是一个简单的应用程序 几乎在无边框窗口中显示我的网站 我目前创建无边框窗口的方式使用以下内容 void awakeFromNib window setStyleMask NSBo
  • XCode iPhone 项目中目标所有配置的通用预处理器宏

    我的应用程序的每个目标通常有四种配置 调试 发布 分发 临时 有没有办法为所有 4 个添加一个通用宏 同时不破坏我到目前为止设置的宏 您在编辑器中看到 多个值 提前致谢 奥比旺 在前缀头文件中定义宏 将包含在所有源文件中
  • 编译托管对象模型时有什么方法可以忽略丢失的反向警告吗?

    标题几乎包含了问题 我们发布了一个应用程序 其数据模型的逆配置不正确 我们在下一个版本中使用新版本的数据模型修复了这些问题 但 Xcode 在编译以前的数据模型版本时仍然显示警告 我不想破坏将文档从旧数据模型迁移到新数据模型的能力 并且我非
  • 如何在 Mac 操作系统中播放声音?

    我想在专为 Mac OS X Lion 10 7 而不是 iPhone 设计的 Objective C 应用程序中播放 mp3 文件 谢谢 看看NSSound http developer apple com library mac doc
  • 可以对 Xcode 中的 Arm 架构设置进行一些澄清

    据我了解 iPhone 5将采用新的架构 armv7s 我的项目具有有效的架构armv7 并且有Build Active Architecture Only set to true 由于现在商店中的每个应用程序都是为armv6 and or
  • 添加 UITabBarController 时出错

    我在用着单点触控C 编写具有多个不同屏幕的 iPhone 应用程序 为了简单起见 我将仅描述导致我遇到问题的控制器的几个屏幕 我遇到的问题是 当我创建一个继承自的类时 我收到此错误消息UITabBar控制器 应用程序窗口应该有一个根视图控制
  • UIWebView Javascript 窗口到窗口通信

    我正在开发一个 iOS 应用程序 我试图在其中使用UIWebView显示各种网站 最近我完成了将 Javascript 注入到的逻辑UIWebView捕获实例window open window close and window opene
  • 如何在 iOS 模拟器上打开开发者工具?

    我想打开开发者工具在 iOS 模拟器上 我在 2016 款 MacBook 上执行了以下步骤macOS 塞拉利昂 10 12 1并且不知道如何进一步 我已经安装了 Xcode 我创建了一个新的游乐场 右键单击 Xcode 停靠栏图标 然后单
  • “UITableView”类型的值没有成员“sectionHeaderTopPadding”

    为什么我在 Xcode 12 4 模拟器 ios 14 x 中收到以下代码的构建错误 if available iOS 15 0 myTableView sectionHeaderTopPadding 0 0 error here 错误是
  • Xcode Instruments:模拟器中运行的 iPhone 应用程序的峰值 RAM?

    活动监视器 又名内存监视器 是 Xcode Instruments 中唯一可以测量在模拟器中运行的 iPhone 应用程序的总应用程序 RAM 使用情况的工具吗 只是显示瞬时有线 RAM 的那条线 与 iPhone 硬件相比 尤其是 OSX
  • 此应用程序的包标识符与其代码签名标识符不匹配

    当我尝试在设备上构建并运行应用程序时 出现以下错误App installation failed This application s bundle identifier does not match its code signing id
  • ARC 项目中出现“Missing [super dealloc]”警告

    我已经将一个项目重构为 ARC 看起来不错 但是有一个对象使用通知中心 我在自定义的 dealloc 方法中删除了观察者 这在非 ARC 项目中效果很好 它也适用于 ARC 但我收到一个疯狂的警告 方法可能缺少 super dealloc
  • 运行使用 XCode 7 部署的应用程序会崩溃

    我在 xcode 6 中开发应用程序 然后设备连接 我通过调试运行应用程序 在我可以断开设备与 Xcode 的连接并再次运行应用程序后 它正在运行 但今天开始出现一些问题 我使用 xcode 7 中的运行按钮运行应用程序 gt 应用程序正常
  • 关于将 Objective C 代码添加到 swift 动态框架的澄清

    我有一个 swift 动态框架 当前正在链接到另一个用 Objective C 编写的框架 这可以工作 但很烦人 因为 Objective C 框架实际上只有 2 个文件 我想知道是否有办法将其带入我的 swift框架 如果这是我会使用的应
  • 在 Swift 2.0 中以横向模式使用 UIImagePickerController

    我正在编写一个仅限 LandScape 的 iPad 应用程序 我需要从库中拍照以发送数据库 但图像上传屏幕仅适用于纵向模式 如何将其更改为横向模式 我读过一些关于 UIPickerControllerDelegate 不支持横向模式的内容
  • swift 中 pch 的替代品是什么?

    我想知道可以用什么来代替 swift 中的 pch 有没有 pch 的替代方案或方法可以快速摆脱导入 这样我们就不需要对所有类都这样做 我不想一直随身携带 进口 swift 中 pch 的最佳替代品是什么 您无法在 swift 中定义 宏
  • UIBarButtonItem 按下后更改字体,在外观代理中指定

    我设置了UIBarButtonItem标题字体通过appearanceAppDelegate 中的代理 UIBarButtonItem appearance setTitleTextAttributes NSDictionary dicti
  • xcode 错误:...此类与键 ibShadowedLargeTitleTextAttributes 的键值编码不兼容

    我不断收到此错误 在我使用颜色集之前 该应用程序就可以运行 该错误说明了一些有关ibShadowedLargeTitleTextAttributes 我没有为大标题阴影设置任何颜色 我使用默认值 透明 我重新启动了 Xcode 使用了阴影颜

随机推荐