我想使用NSStackView将堆叠视图放在彼此之上,我也希望它们可以展开,因此如果我正确理解它,我不能使用NSCollectionView。 所以,故事板,我创建了一个NSStackView(嵌入在滚动视图)在主视图控制器和视图控制器,我想填补它:使用IBAction添加视图到NSStackView崩溃应用程序
按钮将填补栈查看与十景:
@IBOutlet weak var stackView: NSStackView!
@IBAction func redrawStackView(_ sender: Any) {
for i in 0..<10 {
let stackViewItemVC = storyboard?.instantiateController(withIdentifier: "StackViewItemVC") as! StackViewItemViewController
stackViewItemVC.id = i
stackView.addArrangedSubview(stackViewItemVC.view)
}
}
在右边的视图控制器只是看起来是这样的:
class StackViewItemViewController: NSViewController {
var id: Int = -1
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}
@IBAction func buttonPressed(_ sender: Any) {
debugPrint("StackViewItemViewController" + id.description + "pressed")
}
运行这个小应用程序工作正常,每次我按下按钮时,会出现另外十个堆栈视图项目。但是,当我大言不惭地按下一个按钮向右应用程序崩溃:
我要去哪里错了? 我试图绕过IBAction来验证这是什么打破,如果我继承按钮并使用从mouseUp调用的函数创建“buttonDelegate”协议,应用程序不会崩溃。
你难道没有在调试器/控制台堆栈跟踪? – Larme
不,没有生成。它的确很奇怪,通常是“当前堆栈跟踪:”在右栏中列出。但现在它的空,除了蓝色(lldb) –