Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Mavericks上NSWindow contentView的奇怪问题_Objective C_Cocoa_Osx Mavericks - Fatal编程技术网

Objective c Mavericks上NSWindow contentView的奇怪问题

Objective c Mavericks上NSWindow contentView的奇怪问题,objective-c,cocoa,osx-mavericks,Objective C,Cocoa,Osx Mavericks,我是一名经验丰富的iOS开发人员,最近开始了开发他的第一款Mac OS应用程序的旅程。到目前为止还不错,但我发现了一个奇怪的问题 我有一个单一的窗口应用程序(从默认的MainMenu.xib文件启动),它将一些NSView(从我创建的自定义NSViewController)推送到NSWindow contentView 这在我的Macbook Air running Mountain Lion和另一款Macbook Pro retina上运行良好,后者运行最新版本的Mavericks。然而,我还

我是一名经验丰富的iOS开发人员,最近开始了开发他的第一款Mac OS应用程序的旅程。到目前为止还不错,但我发现了一个奇怪的问题

我有一个单一的窗口应用程序(从默认的MainMenu.xib文件启动),它将一些NSView(从我创建的自定义NSViewController)推送到NSWindow contentView

这在我的Macbook Air running Mountain Lion和另一款Macbook Pro retina上运行良好,后者运行最新版本的Mavericks。然而,我还有第三台设备运行Mavericks,我只得到一个没有视图的空白屏幕窗口

这就是窗口结构:

NSWindow (custom NSWindow object, initiated with NSBorderlessWindowMask)
    --> NSWindow has a background view, with a solid colour
然后,对于需要在窗口中显示的内容,我有以下结构:

NSViewController (main)
    --> NSViewController sub 1. View is added to the ViewController above
    --> NSViewController sub 2. View is added to the ViewController above
    --> NSViewController sub 3. View is added to the ViewController above
然后我将主NSViewController(包含视图的子部分)添加到窗口的contentView中

self.mainViewController = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];

[self.window.contentView addSubview: self.mainViewController.view];
[self.window.contentView setNeedsDisplay:YES];

self.mainViewController.view.frame = ((NSView*) self.window.contentView).bounds;

在我遇到问题的Mavericks设备上,我只看到了NSWindow及其背景视图。在所有其他系统上,一切都正常。

嗯,我肯定我本地化的次数比你少,但我首先怀疑缺少NIB资源是个问题,然后是本地化是个问题,因为NIB没有加载,
initWithNibName:bundle
确实在寻找本地化的NIB


听起来您需要对子视图进行基本本地化,以确保它们无处不在,我想这相当奇怪。

在哪里创建其他视图控制器?在xib中还是手动?其他视图在MainViewController中创建,也从xib文件(通过代码)加载。它们作为MainViewController的子视图添加。如果其他视图控制器位于xib的根级别,请确保在创建插座时使用“strong”,因为它们不会被保留。子视图控制器以与MainViewController类似的方式初始化(initWithNibName等)在MainViewController中,然后将这些viewcontroller视图添加到self.view中。MainViewController的XIB文件不包含对子视图的XIB的直接引用。它们也被正确地保留,应该没有问题。有问题的系统在捆绑包中没有NIB资源的可能性有多大?所有的东西都是一样的吗?