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

时间:2012-01-31 23:00:46

标签: macos cocoa xcode4 nswindowcontroller

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

How to give focus to NSWindow loaded from NIB?

Why do I have to call showWindow on my NSWindowController twice on 10.5?

在Apple文档中:

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

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

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:12)

好的 - 我明白了。

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

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

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

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

  • 要在文件所有者中创建窗口到窗口,请选择文件所有者,然后从文件所有者拖动到窗口,然后在弹出窗口中选择“窗口”。
  • 要在窗口中创建委托到文件的所有者出口,请选择窗口和
    • 按住Ctrl键并从“窗口”拖动到“文件”的“所有者”,然后在弹出窗口中选择“委托”。
    • 然后选择Connections Inspector并按住Ctrl键从委托拖动到文件所有者。

使用New Referencing Outlet ....

也可以“反转”这些步骤