我想使用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) –