gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 10:39:27 24 4
gpt4 key购买 nike

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

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

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

最佳答案

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

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)

}
}

关于swift - 从 nib 文件加载的 NSView 已禁用控件,并且操作也不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57189675/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com