【发布时间】:2012-01-25 12:49:03
【问题描述】:
非常感谢这个网站。最近很多帖子对我有帮助。
这个窗口问题看起来很简单,但我找不到解决我需要的简单参考。我正在构建一个管理打印机的简单应用程序。主屏幕有一个表格视图,它由从 cups 服务器中提取的一组数据驱动。基本上它显示了该计算机上安装的打印机。有两个子窗口。每个都有自己的窗口控制器和 nib 文件。为了清楚起见,我将它们称为子笔尖或子窗口控制器。每个都做一些不同的事情,但会影响系统打印机。我想确保当子窗口关闭并将控制权返回到主屏幕时,主屏幕窗口(由 AppDelegate 控制)通过重新加载表格视图(以使用打印机更新操作系统级别的任何更改)来响应。
在高层次上,当我在通过其控制器操作的子窗口中时,我不明白如何将消息发送回 AppDelegate。例如,假设在子窗口 nib 上按下了一个按钮,并且您想修改 AppDelegate 中控制的 ivar?看起来应该很简单,但似乎父 AppDelegate 的对象模型不可用。
在较低级别,我不确定如何让 AppDelegate 知道窗口已关闭。我很幸运地让子窗口控制器意识到它正在通过 windowWillClose 通知关闭 - 当我将子笔尖的委托设置为子窗口控制器时,这有效。但是父控制器 AppDelegate 仍然不知道,我不知道如何告诉子窗口控制器的 AppDelegate 做某事。
父 AppDelegate 是否通过对象消息获知?如果是这样,如何?子笔尖可以有不同的所有者和委托人吗?是否可以将第二个 nib 设置为指向其控制器作为所有者并指向 AppDelegate 作为委托?我试过了,但不知道如何将它连接起来。
总而言之,在我的子笔尖通过子控制器关闭后,我如何在 AppDelegate 中执行操作。 任何帮助将不胜感激。
【问题讨论】:
标签: cocoa