将窗口控制器插座连接到窗口

GTA*_*E86 6 macos cocoa nswindowcontroller xcode4

我试图在XCode 4中创建一个简单的模态对话框.我创建了xib,创建了NSWindowController派生类,并使其成为xib文件所有者中的类.我遇到问题的部分是物理连接窗口插座,如问题答案中所述:

如何关注从NIB加载的NSWindow?

为什么我必须在我的NSWindowController上调用showWindow两次10.5?

在Apple文档中:

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Documents/Concepts/WinControllersAndNibs.html

我理解这个概念,但我无法弄清楚如何在XCode 4中实际执行此操作!我知道如何通过CTRL-drag将xib中的控件连接到类中的插座或动作.在这种情况下,我只是不知道要拖拽什么.

任何帮助赞赏.

GTA*_*E86 12

好的 - 我明白了.

窗口插座:在IB Dock中,选择File的Owner对象.从那里控制拖动到XIB文件中的窗口.这将创建新的Outlet.

委托出口:要将委托出口连接到文件所有者,请选择IB Dock中的窗口.在连接检查器中,在Outlets下,从"委托"控制拖动到"文件所有者"此连接也可以在选择文件所有者的情况下进行,只需控制 - 从引用插座拖动到窗口并从弹出窗口中选择"委托" .

编辑:获得此效果的最佳方法是在窗口中委托文件的所有者插件和文件所有者中的窗口到窗口插件,首先创建NSWindowController派生类,然后让XCode在该过程中创建xib.两个出口都将自动创建.

如果首先创建了xib,并且希望将它挂钩到NSWindowController派生类,那么可以通过IB中的ctrl-drag创建出口:

  • 要在文件所有者中创建窗口到窗口的出口,请选择文件的所有者,然后从文件的所有者拖动到窗口,然后在弹出窗口中选择"窗口".
  • 要在Window中创建委托到文件的所有者出口,请选择窗口和
    • 按住Ctrl键从Window拖动到File的Owner,然后在弹出窗口中选择"delegate".
    • 或者选择Connections Inspector并按住Ctrl键从委托拖动到文件所有者.

这些步骤也可以通过使用New Referencing Outlet来"反转"....

  • 我有一个类似的问题,即ctrl +拖动,没有任何反应.结果文件所有者未设置为检查器区域中的自定义类.之后一切顺利. (2认同)