从 nib 文件加载的 NSView 已禁用控件并且操作也不起作用

NSView loaded from nib file has disabled controls and actions doesn't work too

我有一个从 nib 文件加载的视图层次结构。最后(最深)层是这样的:

let xValue =  (point as! DynamicPoint).xValue
let xViewController =  DynamicValuePanelViewController(nibName: "DynamicValuePanelView", value: xValue)
xValueView.addSubview(xViewController.view)

好的,差不多可以了。我可以在 xValue 对象的 NIB NSView 值中看到它的 namevalue、一些 NSPopUpButton 值的 [String] 数组。 但是,如果我将 NSTextField 操作连接到文件所有者,它就永远不会被触发。如果我绑定值 - getter 有效,setter - 永远不会。我添加了 NSPopupButton,并绑定了值——是的,它们在菜单中,但它们被禁用,按钮的操作从未触发。是什么导致了这种奇怪的单向行为?我什么都能得到,什么都不设置。

正如@Willeke 所说 — NSViewControllers 必须具有强引用。无法“即时”创建它们。

class SomeController:NSViewController {

    var xViewController: DynamicValuePanelViewController!
    @IBOutlet var xValueView: NSView!

    func loadView(for xValue: SomeCustomObject) {
         xViewController =  DynamicValuePanelViewController(nibName: "DynamicValuePanelView", value: xValue)
         xValueView.addSubview(xViewController.view)

    }
}