我正在构建一个非基于文档的可可应用,我希望其表现如下:
主窗口包含一个带有项目列表的表视图(由Core Data支持)。
每个项目都应在自己的窗口中打开
同样,单击“新项目”按钮应打开一个新项目窗口,同时可以打开多个此类窗口。
在当前处理表格视图的应用程序委托中,我实现了以下方法来打开新的项目窗口:
-(IBAction)newItem:(id)sender {
MyItemWindowController *itemController = [[MyItemWindowController alloc]initWithWindowNibName:@"MyItemWindowController"];
[itemController showWindow:self];
}
窗口确实显示,但是几乎立即消失。但是,如果我实例化一个窗口控制器,该窗口控制器是我的appDelegate的实例变量,则该窗口确实存在,但是很明显,在任何给定时间只能打开一个这样的窗口。
我真的很想拥有提到的功能,但是不想使用基于文档的体系结构,因为我不需要能够将项目作为文档保存到磁盘。
有什么建议么?我知道我一定会错过一些非常基本的东西,但是我无法弄清楚!
最佳答案
我猜你的窗口是由于ARC而消失的(不是很熟悉它,所以我不确定是不是这个原因),所以就照你说的去做吧,而不是使用MyItemWindowController作为实例变量,而是使用数组作为您的实例变量,可在需要另一个新窗口时添加一个新的窗口控制器。