0

我正在构建一个基于非文档的可可应用程序,我希望其行为如下:

  • 主窗口包含一个带有项目列表的表视图(由 Core Data 支持)。
  • 每个项目都应在自己的窗口中打开
  • 同样,单击新项目按钮应该会打开一个新项目窗口,同时可以打开多个这样的窗口。

在我当前处理表格视图的应用程序委托中,我实现了以下方法来打开一个新的项目窗口:

-(IBAction)newItem:(id)sender {

    MyItemWindowController *itemController = [[MyItemWindowController alloc]initWithWindowNibName:@"MyItemWindowController"];

    [itemController showWindow:self];

}

窗口确实显示了,但它几乎立即消失了。但是,如果我实例化一个窗口控制器,它是我的 appDelegate 的一个实例变量,该窗口确实会保留,但显然,在任何给定时间只有一个这样的窗口可以保持打开状态。

我真的很想拥有提到的功能,但不想使用基于文档的架构,因为我不需要能够将项目作为文档保存到磁盘。

有什么建议么?我知道我一定错过了一些非常基本的东西,但我就是想不通!

4

1 回答 1

4

我猜你的窗口因为ARC而消失了(不太熟悉它,所以我不确定这是否是原因),所以只要按照你说的做,但不要将 MyItemWindowController 作为实例变量,而是有一个数组作为您的实例变量,当您需要另一个新窗口时,它会添加一个新的窗口控制器。

于 2012-07-20T11:05:36.007 回答