在 MonoMac 上,是否可以至少将我的 ViewController(以及理想情况下的 .xib 文件)移动到类库项目中?
在尝试这样做时,我的 XCode 集成被破坏了。
例如,在默认项目中:
- 将 MainWindowController.cs 移到类库意味着它不再编译(因为它看不到 MainWindow 类)
- 所以我也将 MainWindow.cs 和 MainWindow.designer.cs 移动到我的类库中。现在,我的解决方案编译但没有运行 - 我在控制台上得到以下信息:
Interface Builder文件中的未知窗口类MainWindow,而是创建通用窗口
并在尝试强制转换 MainWindow 的空指针上崩溃
所以很明显,我已经破坏了我的 .xib 和我的托管代码之间的链接。当然,移动.xib 本身并没有帮助——一旦它在类库项目中,我就失去了所有的“魔力”(例如,双击将文件作为MD 中的文本打开,而不是XCode)。
当然,我可以在这里应用一些变通方法 - 使我的控制器尽可能地薄,并尝试将它们构造为在我的类库中的逻辑之上的非常薄的包装器。但如果我能真正移动控制器,那就太好了。深入研究 MonoMac 源代码并没有帮助,显然它非常复杂。
我应该指出,我已经成功地以这种方式构建了一个 MonoTouch 项目。当然不同的是,它没有使用 .xib 文件......
我已经在 Mono 论坛上发帖,但没有任何回应(http://mono.1490590.n4.nabble.com/MonoMac-project-structure-tp4657231.html)。希望我的问题在这里能得到更大的关注。
编辑:
这仍然行不通。尽管最新的 MonoDevelop 允许我以这种方式创建和编译解决方案,但实际输出并没有按预期工作。调试器从不附加。从 MonoMac 项目中删除 MainWindow 定义(将自定义窗口定义保留在库项目中)会导致相同的错误。