关于小牛队的NSWindow contentView的奇怪问题

时间:2014-04-26 15:44:10

标签: objective-c cocoa osx-mavericks

我是一位经验丰富的iOS开发人员,最近开始构建他的第一个Mac OS应用程序。到目前为止一切都那么好,但我遇到了一个奇怪的问题。

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

这适用于运行Mountain Lion的Macbook Air以及另一款运行最新版Mavericks的Macbook Pro视网膜。但是,我还有第三个运行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及其背景视图。在所有其他一切都很好。

1 个答案:

答案 0 :(得分:1)

嗯,我确信我比你更少地本地化事物,但我首先怀疑缺少NIB资源是问题,然后本地化是问题,因为NIB没有加载和{{ 1}}确实寻找本地化的NIB。

听起来你需要对子视图进行基本定位,以确保它们出现在任何地方,我猜这很奇怪。