Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 可重用的NSView从故事板添加到NSStackView_Cocoa_Storyboard_Stackview_Nsstackview - Fatal编程技术网

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应用程序那样加载。我认为这更像是一个代码设计问题。顺便说一句,这对我帮助很大:)