gpt4 book ai didi

swift - 在 Swift 4 for MacOS X 中,如何在 NSBox 中嵌入 NSStackView?

转载 作者:行者123 更新时间:2023-11-28 05:55:39 26 4
gpt4 key购买 nike

我正在尝试将 IB 应用程序重写为大部分代码而不是 Storyboard,因为一些控件将被动态创建。我目前正试图在 NSBox 的 controlView 中嵌入一个 NSStackView(或者实际上除了 NSView 之外的任何东西)。我知道 IB 可以做到,因为我目前的应用程序有:突出显示了一个 NSBox,其中包含一个 View,其中包含一个 Stack View。

Highlighted an NSBox, containing a View, containing a Stack View

在我的示例应用程序中,我可以成功地将标签嵌入到框中(即将框的 contentView 设置为 NSTextView)

然后我尝试在框中嵌入一个堆栈 View ,它说它不是预期的类型 (NSView)。所以我创建了一个中间 NSView 来保存堆栈 View ,就像在真正的应用程序中一样。如果我尝试将堆栈 View 作为 subview 添加到 NSView,我会收到“无法转换类型的值...”

有没有办法在框中嵌入堆栈 View ?或者有没有办法将堆栈 View 嵌入到一个 View 中,然后我可以将其嵌入到框中?

这是我当前示例代码的相关部分:代码和错误信息。

code and error message

最佳答案

根据问题图像中的错误,您应该尝试以下代码:

interView.addSubview(content)

您不能使用 addSubview 直接在 View 上添加堆栈 View 数组,因为它只接受 NSView 类型或其子类的 View 。您可以遍历数组并使用此方法在其上添加每个 View 。

您还可以将 NSStackView 添加为 NSBoxcontentView。它不应产生任何问题。

image

关于swift - 在 Swift 4 for MacOS X 中,如何在 NSBox 中嵌入 NSStackView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51566628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com