我有一个包含3个.xib文件,MainMenu,FileUploadView,FileBrowseView的项目。
MainMenu有一个NSPanel,它的所有者是AppDelegate,而AppDelegate有一个名为FilePanel的NSPanel出口。 NSPanel下面的NSView称为filePanelView,在AppDelegate中也有一个插座。
FileUploadView是一个NSView,它的所有者是FileUploadViewController。它在控制器中有一个名为uploadView的插座。
所以在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。我做错了吗?
答案 0 :(得分:2)
检查[fileBrowseViewController browserView]
是否不是nil
。
这很可能,尤其是,如果您忘记或未能将browseView
IBOutlet链接到代表InterfaceBuilder中FileBrowseView
实例的实际UIView 。
[编辑] 有关连接插座的详细信息,请see Apple's InterfaceBuilder Help here(包括教程视频)。