我正在构建一个非基于文档的 cocoa 应用程序,我希望其行为如下:
- 主窗口包含一个带有项目列表的表格 View (由核心数据支持)。
- 每个项目都应在自己的窗口中打开
- 同样,单击“新项目”按钮应打开一个“新项目”窗口,并且可以同时打开多个此类窗口。
在当前处理 TableView 的应用程序委托(delegate)中,我实现了以下方法来打开新的项目窗口:
-(IBAction)newItem:(id)sender {
MyItemWindowController *itemController = [[MyItemWindowController alloc]initWithWindowNibName:@"MyItemWindowController"];
[itemController showWindow:self];
}
窗口确实显示,但它几乎立即消失。但是,如果我实例化一个窗口 Controller ,它是我的 appDelegate 的实例变量,则该窗口确实会保留下来,但显然,在任何给定时间只有一个这样的窗口可以保持打开状态。
我真的很想拥有上述功能,但不想使用基于文档的架构,因为我不需要能够将项目作为文档保存到磁盘。
有什么建议吗?我知道我一定错过了一些非常基本的东西,但我就是无法弄清楚!
最佳答案
我猜你的窗口因为ARC而消失了(不太熟悉它,所以我不确定这是否是原因),所以就按照你说的做,但不要将 MyItemWindowController 作为你的实例变量,有一个数组作为实例变量,每当您需要另一个新窗口时,它都会添加一个新的窗口 Controller 。
关于cocoa - 非基于文档的 Cocoa 应用程序中的多个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11577998/