NSStackViewを使用してビューを重ね合わせることができます。拡張できるようにしたいので、正しく理解すればNSCollectionViewを使用できません。NSStackViewにビューを追加すると、アプリケーションがクラッシュする
ボタンがスタックを記入します: だから、ストーリーボードでは、私は私がそれを埋めるためにしたいメインビューコントローラでNSStackView(スクロールビューに埋め込まれた)とビューコントローラを作成しました10件の景色を眺め:
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")
}
実行:右の
@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)
}
}
とのViewControllerは、単純に次のようになりますこの小さなアプリケーションは正常に動作します。ボタンを押すたびに、さらに10個のスタックビューアイテムが表示されます。しかし、私は右のボタンのいずれかのアプリケーションのクラッシュを押すように大胆さがある場合:私は間違っているつもりです
を? 私はIBActionを回避しようとしましたが、何が壊れているかを確認し、ボタンをサブクラス化してmouseUpから呼び出される関数で "buttonDelegate"プロトコルを作成すると、アプリケーションがクラッシュしません。
デバッガ/コンソールにスタックトレースを持っていないのですか? – Larme
いいえ、何も生成されません。その本当に奇妙な、通常は "Current stack trace:"が右側の列に表示されます。しかし、今は青を除いてその空白(lldb) –