从 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 值中看到它的 name
、value
、一些 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)
}
}
我有一个从 nib 文件加载的视图层次结构。最后(最深)层是这样的:
let xValue = (point as! DynamicPoint).xValue
let xViewController = DynamicValuePanelViewController(nibName: "DynamicValuePanelView", value: xValue)
xValueView.addSubview(xViewController.view)
好的,差不多可以了。我可以在 xValue
对象的 NIB NSView 值中看到它的 name
、value
、一些 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)
}
}