我有一个令人费解的问题。在 mac os x 10.7 中开发可可应用程序。
我的应用程序主窗口包含一个拆分视图。在拆分视图的其中一个子视图中的某个使用上下文中,加载了一个带有一些标签(nstextfield)的自定义视图和一个拆分视图(实例化了一个加载 nib 并从该控制器获取视图的视图控制器)。自定义视图的框架设置为拆分视图子视图边界,一切正常。问题是应该加载第二个拆分视图的子视图之一(相同的方法:视图控制器-nib-view-frame/bounds),其中包含一个包含表格视图和一个按钮的自定义视图,但在这种情况下没有任何显示。一切都以相同的方式完成,但最后一个自定义视图不可见。任何想法?
谢谢
(编辑)
这是我用来为要添加的视图实例化控制器、获取视图并将其作为子视图添加到拆分视图的子视图的代码
- (void)loadSubview {
self.subviewToAddController = [[viewController alloc] initWithNibName:nil bundle:nil];
//nib name is coded in the controller class definition
[[self.subviewToAddController view] setFrame:[self.splitViewContainerSubView bounds]];
//container subView is an outlet
[self.splitViewContainerSubView addSubview:[self.subviewToAddController view]];
}
但是我不认为问题出在这段代码中,因为如果我向容器子视图询问它自己的子视图,我可以看到新的子视图出现在列表中。它只是没有显示。如果我将它添加为拆分视图的子视图(刚刚进行的测试)或作为最外部拆分视图的子视图的子视图,它也会正确显示(抱歉解释混乱,我需要一个图表,但在这个那一刻我做不到)
详细说明我的疑问(我不想误导,所以我之前没有提到)不能是坐标问题,所以视图被正确加载并添加为子视图但不可见,因为被某些东西隐藏或显示超出可见区域?
(更新)
抱歉花了这么长时间才发布更新。经过更多测试,我发现问题与自动布局有关。不知道确切的问题是什么以及如何解决它。我最终为遇到麻烦的笔尖关闭了它,并使用旧方法设置界面对象的位置和大小/调整大小。不是最好的方法,但现在我可以继续。