在InterfaceBuilder中使用Storyboard时,如何连接NSWindow的initialFirstResponder?

时间:2015-05-30 21:04:33

标签: xcode macos cocoa interface-builder xcode-storyboard

我对使用故事板似乎放在NSWindows / NSWindowControllers和NSViews / NSViewControllers之间的墙感到沮丧。一个具体的例子:如果整个视图层次结构位于一个单独的场景中并且无法引用,那么NSWindow上的initialFirstResponder出口有什么用呢?

我希望将窗口调用" progred"" initialFirstResponder" Content View"从视图控制器场景中查看,但您无法跨场景进行IBOutlet引用。我非常乐意把ViewController和Window放在同一个场景中,但是我似乎无法使用我所尝试过的所有拖拽/拖拽工作。场景到另一个,甚至尝试从工具箱中添加一个新场景。您似乎需要使用segue关系将NSViewController分配给NSWindow。

我已经用谷歌搜索了但是我没有找到任何关于这个问题的内容,这可能只是因为我错过了一些显而易见的东西,因为我对故事板很新,因为我无法理解想象一下,我是第一个注意到这一点的人:)。

Scene Heirarchy

1 个答案:

答案 0 :(得分:3)

我一直在使用swift(Xcode 6.3.1)。尽管所有的doco和建议都说“控制阻力......”,IB似乎无法做我们想做的事情。我的(最终)解决方案/解决方法是在视图控制器的viewWillAppear中的代码中设置它。我尝试了各种方法,直到我遇到一些声明必须在显示窗口之前设置initialFirstResponder的apple doco。希望这会有所帮助。

顺便提一下,请注意默认的Window行为是“可恢复的”,似乎重新启动(重建)应用程序,焦点在应用程序被杀死的最后一个字段中....叹息