Cocoa 可重用的NSView从故事板添加到NSStackView
我的故事板中定义了一个Cocoa 可重用的NSView从故事板添加到NSStackView,cocoa,storyboard,stackview,nsstackview,Cocoa,Storyboard,Stackview,Nsstackview,我的故事板中定义了一个NSViewController,其中包含一个包含各种标签和按钮的视图。它们使用自动布局对齐。 我想把它作为一个UI原型,这样我就可以生成很多这样的东西,并将它们添加到垂直NSStackView中,就像表格行一样 我的NSViewController的子类定义如下: class ApproachRowVC: NSViewController { @IBOutlet var quantityLabel: NSTextField! @IBOutlet var det
NSViewController
,其中包含一个包含各种标签和按钮的视图。它们使用自动布局对齐。
我想把它作为一个UI原型,这样我就可以生成很多这样的东西,并将它们添加到垂直NSStackView
中,就像表格行一样
我的NSViewController
的子类定义如下:
class ApproachRowVC: NSViewController {
@IBOutlet var quantityLabel: NSTextField!
@IBOutlet var detailsLabel: NSTextField!
@IBOutlet var holdingLabel: NSTextField!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func clickDelete(_ sender: Any) {
print("Delete")
}
}
在我拥有NSStackView
并想要添加这些行的控制器中,我尝试了一些类似的方法,但我最困惑的是这是如何发生的。这不起作用,但我不确定如何继续:
let test = ["one", "two", "three"]
for label in test{
let approachRowVC = self.storyboard?.instantiateController(withIdentifier: "ApproachRow") as! ApproachRowVC
approachRowVC.quantityLabel.stringValue = label
approachList.addArrangedSubview(approachRowVC.view)
}
关于如何做到这一点,您有什么建议吗?您能详细介绍一下提供的示例中哪些地方不起作用吗?除非
情节提要
为nil,找不到具有该标识符的控制器,或者如果生成的视图没有定义其大小的约束(因此在堆栈视图中被压缩为零大小),否则这应该是可行的。我在quantityLabel
上设置stringValue
时遇到崩溃(nil值)。但是,在控制器实例化之后添加此项之后,它就可以工作了:let\uwvc=approachRowVC.view
。我猜这些视图还没有像Mac应用程序那样加载。我认为这更像是一个代码设计问题。顺便说一句,它帮了我很多:)你能详细介绍一下提供的样品有哪些地方不起作用吗?除非情节提要
为nil,找不到具有该标识符的控制器,或者如果生成的视图没有定义其大小的约束(因此在堆栈视图中被压缩为零大小),否则这应该是可行的。我在quantityLabel
上设置stringValue
时遇到崩溃(nil值)。但是,在控制器实例化之后添加此项之后,它就可以工作了:let\uwvc=approachRowVC.view
。我猜这些视图还没有像Mac应用程序那样加载。我认为这更像是一个代码设计问题。顺便说一句,这对我帮助很大:)