为什么我的子视图没有加载?

时间:2011-09-08 15:46:54

标签: objective-c cocoa

我有一个包含3个.xib文件,MainMenu,FileUploadView,FileBrowseView的项目。

  • MainMenu有一个NSPanel,它的所有者是AppDelegate,而AppDelegate有一个名为FilePanel的NSPanel出口。 NSPanel下面的NSView称为filePanelView,在AppDelegate中也有一个插座。

  • FileUploadView是一个NSView,它的所有者是FileUploadViewController。它在控制器中有一个名为uploadView的插座。

  • FileBrowseView类似,所有者是FileBrowseViewController,有一个叫做browseView的插座。

所以在App委托中我有以下代码:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    fileBrowseViewController = [[FileBrowseViewController alloc]
        initWithNibName:@"FileBrowseView" bundle:nil];  
}

- (IBAction)importHandsClicked:(id)sender {
    [NSApp activateIgnoringOtherApps:YES];
    [filePanel setIsVisible:YES];
    [filePanelView addSubview:[fileBrowseViewController browseView]]; 

}

该操作确实使filePanel可见,但它不会向其添加browseView。我做错了吗?

1 个答案:

答案 0 :(得分:2)

检查[fileBrowseViewController browserView]是否不是nil

这很可能,尤其是,如果您忘记或未能将browseView IBOutlet链接到代表InterfaceBuilder中FileBrowseView实例的实际UIView

[编辑] 有关连接插座的详细信息,请see Apple's InterfaceBuilder Help here(包括教程视频)。