xcode - 在InterfaceBuilder中使用Storyboards时,如何连接NSWindow的initialFirstResponder?

标签 xcode macos cocoa interface-builder xcode-storyboard

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

我想让名为“progred”的initialFirstResponder 窗口成为 View Controller 场景中的“内容 View ” View ,但您无法跨场景进行IBOutlet 引用。我非常乐意将 ViewController 和 Window 放在同一个场景中,但我似乎无法让它与我尝试从一个场景到另一个场景进行的所有拖/放操作一起使用,甚至无法处理尝试从工具箱中添加一个新工具。看来您需要使用 segue 关系将 NSViewController 分配给 NSWindow。

我用谷歌搜索过,但没有找到任何关于这个问题的信息,这可能意味着我错过了一些明显的东西,因为我对 Storyboard还很陌生,因为我无法想象我是第一个注意到这一点的人: )。

Scene Heirarchy

最佳答案

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

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

关于xcode - 在InterfaceBuilder中使用Storyboards时,如何连接NSWindow的initialFirstResponder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30551377/

相关文章:

ios - 忽略状态栏的自动布局

ios - 如何将 iOS Swift 3 应用程序中的数据写入 BLE (HM-10)?

node.js - Node 立即被 kill -MacOS

cocoa - 使用setTarget : message of a cell to make the target File's Owner

iphone - 改变self的指针

objective-c - 是NSMutableString的-appendString : method an efficient way to build up a large string?

ios - 需要旧版本的 Google 移动广告 SDK iOS

ios - Xcode 7.2错误:找不到-lGoogleAnalyticsServices的库

iphone - 将字符串格式说明符(%@、%d 等)保存在 NSString 中以供将来占位符使用?

objective-c - [NSOpenPanel openPanel] 调用上的 "Failed to updated [sic] bookmark for item"