2010-09-02 186 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