2010-09-02 177 views
0

在我的應用程序中,我打開用於用戶輸入的工作表窗口。由於窗口很複雜,並且有幾個文本框和幾個按鈕,我爲它創建了一個單獨的控制器(InputWindowController)。從工作表返回值?

當工作表關閉時,我想從InputWindowController接收一些值,但我不知道如何。在我發現的所有示例中,工作表中的控件都連接到主控制器上的插座,但這不是我想要的。如果我這樣做,我不需要一個單獨的控制器。

另外我不太確定ContextInfo的用途。您可以在表單打開之前進行設置,並在關閉時收到。如果我可以在表單中更改表單中的contextInfo,它確實會幫助很多。

+0

以我的經驗,'contextInfo'完全沒用。抓住這是你的圖紙控制器的工作。 – 2010-09-02 22:11:30

回答

2

當表關閉時,我想從InputWindowController接收一些值,但我不知道如何。

爲InputWindowController提供委託的屬性,以及指定委託必須實現的方法的協議。讓該方法成爲InputWindowController將工作表末端傳遞給想要運行工作表的對象的方式。

我會建議製作一個model object,其中包含在表格中顯示和可編輯的任何值。給InputWindowController一個屬性,通過它來保存一個這樣的模型對象。然後,當想要運行工作表的對象收到InputWindowController關於工作表已經結束的通知時,想要運行工作表的對象向InputWindowController詢問模型對象。

或者,想要運行工作表的對象可以在調用InputWindowController之前在模型對象上設置key-value observing。這樣,它就會在模型對象的屬性發生變化時接收(並能夠保存並撤消)這些變化;那麼,在工作表的最後沒有任何進一步的工作要做。

+0

我做了模型對象和委託,它工作正常。謝謝 – TalkingCode 2010-09-10 19:32:58