如何将委托设置为接口构建器创建的类?

时间:2011-07-31 22:26:58

标签: objective-c xcode delegates interface-builder

我正在Xcode中创建一个有两个nib文件的程序。每个人都有一个单独的NSWindow。第一个是来自MainMenu.xib的启动。当我点击其中的按钮时,我使用它来加载我的第二个视图(来自app delegate):

 myControl = [[NSWindowController alloc] initWithWindowNibName:@"ServerWindow"];
[myControl showWindow:self];

第二个XIB(ServerWindow.xib)加载没有问题,它有一个ServerWindow.h和ServerWindow.m连接到它(在NSObject中Draged并指向IB中的这个类。

然后我继续在ServerWindow中进行一些设置,当我关闭此窗口时,我想将这些设置委托给我原来的类(App委托)。

问题是,虽然我没有创建我的类的实例(ServerWindow.h),但是当它加载XIB时,Interface Builder以某种神奇的IB方式创建它,我不能将我原来的类设置为它的委托。

如何将邮件传回原来的班级?

2 个答案:

答案 0 :(得分:4)

将对象拖到第二个xib中,然后在右侧/检查/属性面板中将类设置为原始类。然后ctr单击 - 从控制器对象拖动到刚创建的对象并将其设置为委托。

答案 1 :(得分:0)

我不太确定我是否理解正确,但您不能在awakeFromNib或甚至在Interface Builder中将自己设置为委托吗?您还可以访问WindowController的窗口属性以获取服务器窗口。