对于主题行缺乏特异性,我深表歉意,但我不完全确定如何对我的问题进行分类。这是一个高层次的问题,但我觉得人们必须一直遇到这个问题,我想知道他们是如何处理这个问题的。我是客观 c 和面向对象编程的相对菜鸟,如果这对你们中的很多人来说是完全显而易见的,请原谅我。
开始。我有一个可可应用程序,它在 mainMenu.xib 中创建主窗口和主应用程序控制器。我的 myMainAppController 对象包含另一个 windowController,例如 mySubWindowController,它是从其自己的单独 nib 文件启动的,如下所示。假设 subWindow 有两个元素,可能是 NSTextfield 和 NSButton。所以...
myMainAppController.h
@interface
@property (strong) MySubWindowContorller *mySubWindowController;
........ so forth
MyMainAppController.m
@implementation
......
self.mySubWindowController = [MySubWindowController alloc] initWithWindowNibName:
@"mySubWindow"];
etc...
MySubWindowController.h
@ interface
IBOutlet (weak) NSTextfield *myTextField;
IBOutlet (weak) NSButton *myButton;
....
到目前为止,我认为很好。很标准的东西,对吧?所以这是我问题的症结所在。在我的类的这种结构下,我如何将 subWindow 中发生的任何信息或活动返回到我的 mainAppController 以及从 mainAppController 到 subWindow 的数据?我似乎无法将 IBOutlet 或 IBAction 从文本字段/按钮返回到 myMainAppController.h,所以除了使用 KVO 之外,myMainAppController 将如何从 mySubWindowController 获取任何信息?如果在 subWindow 中实现了需要 myMainWindowController 元素的操作怎么办?我无法将操作消息发送回 myMainAppController 并且 mySubWindowController 无权访问其包含类的其他元素。
当主窗口和子窗口需要协调数据和逻辑时,在这种情况下你会怎么做?由于我的经验不足,我是否遗漏了一些完全明显的东西,还是这种情况相当普遍?在我开发我的应用程序的相对较短的时间内,我已经遇到过几次。试图了解其他人如何处理这个..
提前感谢您的任何想法。