首页 > 解决方案 > Swift:NSStackView,bug 只添加了一个子视图

问题描述

您好,在下面的代码中,我想将 NSImageView 添加到我的 stackView 中,但是有一个错误,因为只添加了一个。循环是 3 次迭代,所以通常我应该有 3 张图像:

    let imageView = NSImageView(frame: NSRect(x: 0, y: 0, width: 50, height: 50))
    imageView.image = image.image

    icons.forEach { _ in
        stackImage.addArrangedSubview(imageView)
    }

    print(stackImage.subviews.count) // Outpout 1

标签: swiftcocoa

解决方案


在 forloop 中创建 NSImageView 实例。你需要检查stackImage.arrangedSubviews.countstackImage.subviews.count

var icons = [NSImage(named: ""),NSImage(named: ""),NSImage(named: "")]
icons.forEach { image in
    let imageView = NSImageView(frame: NSRect(x: 0, y: 0, width: 50, height: 50))
    imageView.image = image
    stackImage.addArrangedSubview(imageView)
}
print(stackImage.arrangedSubviews.count) 

推荐阅读