我是一位经验丰富的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及其背景视图。在所有其他一切都很好。
答案 0 :(得分:1)
嗯,我确信我比你更少地本地化事物,但我首先怀疑缺少NIB资源是问题,然后本地化是问题,因为NIB没有加载和{{ 1}}确实寻找本地化的NIB。
听起来你需要对子视图进行基本定位,以确保它们出现在任何地方,我猜这很奇怪。