gpt4 book ai didi

swift - 切换出嵌入在 NSContainerView 中的 View

转载 作者:搜寻专家 更新时间:2023-11-01 07:13:33 25 4
gpt4 key购买 nike

我有一个 swift 项目,我在其中根据连接到 PC 的设备数量以编程方式制作按钮(简而言之)。所有这些设备都将获得自己的指定 View ,用户可以在其中调整此设备的设置。

到目前为止,我已经设法完成的是以编程方式放置按钮,并以编程方式为每个设备创建 View :

func createView() {
let frame : NSRect = NSMakeRect(32, 32, 200, 200)
let view : NSView = NSView(frame: frame)
view.wantsLayer = true
view.layer?.backgroundColor = NSColor.red.cgColor

self.view = view
}

现在,我所做的是当一个按钮被按下时,对应于该按钮的 View :

@objc private func switchToView(sender : OpenDeviceButton) {
let device : Device = sender.device!
self.view.window?.contentView = device.view
}

然而,我打算做的是,我不会改变一切,而是只改变一小部分。所以,我想到的是使用 ContainerView 并切换出嵌入的内容,但是,我在 Apple 文档中找不到任何可以帮助我的东西。

有没有办法用另一个 NSView 交换容器 View 的内容?

谢谢。

最佳答案

您可以像这样手动替换 subview :

let oldView = self.view.window?.contentView!.subviews[0]
let frame = oldView.frame
oldView.removeFromSuperview()
device.view.frame = frame
self.view.window?.contentView!.addSubview(device.view)

关于swift - 切换出嵌入在 NSContainerView 中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43585178/

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