2012-07-20 42 views
0

我建立,我想表現如下非基於文檔的可可應用:多個Windows在非基於文檔 - 可可應用程序

  • 主窗口包含列表的表視圖項目(由核心數據支持)。
  • 每個項目應打開它自己的窗口
  • 同樣,點擊新項目按鈕應打開一個新項目窗口,同時可以打開多個這樣的窗口。

在我的應用程序的委託,當前處理的表視圖,我採取了以下方法來打開一個新的項目窗口:

-(IBAction)newItem:(id)sender { 

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

    [itemController showWindow:self]; 

} 

窗口沒有顯示,但它幾乎立即消失。但是,如果我實例化一個窗口控制器,它是我的appDelegate的一個實例變量,窗口​​確實存在,但顯然,在任何給定時間只有一個這樣的窗口可以保持打開狀態。

我真的很想擁有上述功能,但不想使用基於文檔的體系結構,因爲我不需要能夠將項目保存爲文檔到磁盤。

有什麼建議嗎?我知道我必須錯過一些非常基本的東西,但我無法想象它!

回答

4

我猜你的窗口由於ARC而消失(不太熟悉它,所以我不確定是否這是原因),所以只是按照你所說的做,而不是讓MyItemWindowController作爲你的實例變量,有一個數組作爲你的實例變量,在你需要另一個新窗口時添加一個新的窗口控制器。

+1

謝謝,這工作..我其實早些時候嘗試這樣做,但忘記初始化數組:) – Arvindh 2012-07-20 11:23:26

+0

當他們關閉時,你如何釋放每個窗口? – 2017-04-23 02:17:51

+0

嗯,我想你只是告訴AppDelegate的窗口數組刪除等於關閉窗口的對象。 – 2017-04-23 02:30:37

相關問題