我'试图在Array
(
[key1] => Array
(
[key2] => Array
(
[key3] => Array
(
[key4] => text
)
)
)
)
内访问view.window
,但它没有。有没有办法强制窗口加载NSViewController-viewDidLoad
?
答案 0 :(得分:0)
我很确定你的直接问题的答案是" no&#34 ;;你不能从-viewDidLoad
内部加载窗口,你只是处于nib加载过程的中间,它就是这样。根据您的笔尖的构造方式以及AppKit的内部细节,您可能会发现窗口有时会在-viewDidLoad
中加载并连接,但它不是您应该依赖的,因为它无法保证。您可能希望使用-awakeFromNib
代替;在加载并初始化笔尖中的所有对象之后调用它,因此应该在该点设置窗口。
答案 1 :(得分:0)
在 viewDidLayout 中,你可以在这种情况下得到(或给出一个更有用的名称)窗口。例如。
你的ViewController类中的顶部
@IBOutlet var bigView: NSView!
var toplevel: NSWindow?
然后你添加
override func viewDidLayout() {
super.viewDidLayout()
toplevel = bigView.window
}
然后,您可以在代码中的任何其他位置查询toplevel.firstResponder并获得答案。 。
希望这有助于