【发布时间】:2016-04-30 04:32:48
【问题描述】:
类似于this question,我试图在一个非常简单的应用程序中将第一响应者设置为三个NSTextFields 中的第一个。那里的建议(在界面构建器中设置Window 的第一响应者)似乎不再适用,至少在涉及情节提要时不适用。 Window 对象确实有一个 initialFirstResponder 出口,但我无法通过拖动、ctrl-drag 等方式在往返 NSTextField 的任一方向上设置它。
IB 提供给我的结构包括一个窗口控制器场景(它本身只是一个空窗口),它链接到一个视图控制器场景(它又包含我的一组NSTextFields 和标签)。
我的怀疑是 Xcode 嵌入到我的应用程序中的一些默认假设/关联导致 Window 控制器在运行时自动加载特定视图,这就是为什么无法绑定它不知道的初始响应程序的原因大约在构建时。这让我想知道哪个对象的哪个生命周期调用是在为时已晚之前调用self.view.window.initialFirstResponder = myTextField 的正确点,以及如何最正确地访问该对象。视图控制器中的 viewWillAppear 或 viewDidLoad 感觉不错,但似乎都没有可靠地产生任何效果(最初活动的 NSTextField 因运行而异,有时似乎跟踪代码更改,但有时不是)。
到目前为止,我已经在GitHub上发布了代码
【问题讨论】:
标签: xcode macos storyboard first-responder