1

我希望其他人以前遇到过这个问题。

在 Xcode Cocoa 应用程序项目中,我创建了一个带有单个视图和一些随机子视图的 *.xib 文件。我创建了一个 *ViewController.m 并从NSViewController. 我将 *.xib 中的文件所有者设置为我的控制器,并将出口视图设置为主视图。AppDelegate然后我在's中创建一个新的控制器实例,applicationDidFinishLaunching:并将其视图作为子项添加到self.window.contentView.

这是奇怪的部分......这在一个新的 Xcode Cocoa 项目中工作得很好。来自 *.xib 的视图按预期添加到主窗口。但是,在我目前正在从事的项目中,[NSViewController loadView] loaded the "(null)" nib but no view was set无论我做什么,我都会得到。在某个时间点,这在这个项目中起作用,现在每次都出错。我什至从旧的 Git 提交中恢复了整个 repo!我假设我看到了 Xcode 错误?

编辑更多信息:这似乎与将项目作为另一个 Xcode 项目的子项目有关。如果我单独打开项目(而不是父项目),它会按预期运行。

4

3 回答 3

7

我有一个类似的问题:我写了一个 ViewController 然后添加了一个 xib 并在那里更改了文件的所有者。然后我在 MainMenu.xib 中添加了一个 ViewController 对象,并将这个对象的自定义类更改为我的 ViewController。
我忘记了什么以及导致相同异常的原因:在 MainMenu.xib 中,我必须单击 ViewController 对象,在 Attributes Inspector 中,我需要指定在创建 ViewController 时应加载的 Nib 名称。遗憾的是 Xcode 需要重新启动才能进行更改。
无论如何,我希望这对检查每个视图连接两次但仍然出现异常的每个人有所帮助。

于 2014-03-23T20:08:59.477 回答
0

虽然没有解释为什么会发生这种情况,但我发现了如何解决这个问题。我将整个项目更改为工作区,我的运行时错误消失了。最初它是一个父项目,有 2 个子项目。

于 2013-09-07T01:46:27.720 回答
0

很清楚这段代码应该可以工作。我做了一个简单的实验。我只是为该特定项目重新创建了 xib,问题就消失了。

所以恕我直言,这是来自苹果的错误。我肯定有很长的清单在这里和那里堆积。...

这整个事情是在我注意到 NSCollectionView 的性能非常缓慢之后开始的,最初我将单元格放入了它们自己的 nib 中,但现在似乎不再需要了,因为您可以在与 NSCollectionView 相同的 xib 中定义自定义 NSCollectionViewItem。然后 Cocoa 将调用 copyWithZone: 并且会很好。

我想我的错是因为我没有适应 Apple 的一些新模式。

于 2015-06-05T18:14:41.607 回答