gpt4 book ai didi

macos - 隐藏 subview 期间 NSSplitView 的奇怪行为

转载 作者:行者123 更新时间:2023-12-03 17:18:26 29 4
gpt4 key购买 nike

我试图了解 splitview 的工作原理。

我有这个简单的分割 View 布局。

enter image description here

和按钮操作方法:

@IBAction func hideYellow(sender: NSButton){
splitV.arrangedSubviews[0].isHidden = !splitV.arrangedSubviews[0].isHidden
splitV.adjustSubviews()
}

@IBAction func hideGreen(sender: NSButton){
splitV.arrangedSubviews[1].isHidden = !splitV.arrangedSubviews[1].isHidden
splitV.adjustSubviews()
}

单击按钮时它会起作用,但在此过程中 subview 的大小会发生变化。

这是隐藏/取消隐藏黄色 View 4次的截图。

第一次:

enter image description here

正如您所注意到的,黄色 View 大小发生了变化。

第二次:

enter image description here

第三次:

enter image description here

第四次:

enter image description here

重复此操作的次数越多,黄色 View 就会变得越来越小。

xib 中的 splitview:

enter image description here

我尝试对白色 View 施加宽度限制,以阻止黄色 View 在此过程中变小。但它仍然不尊重白人视角的宽度限制。

我还取消选中了黄色 View 的自动调整 subview 大小选项。

请让我知道我犯了什么错误。

最佳答案

只有当我将框架设置为固定位置时,这才有效。

最初我必须设置分隔线位置

splitV.setPosition(300, ofDividerAt: 0)

并手动更新 subview 宽度

@IBAction func hideYellow(sender: NSButton){
collapsed = !collapsed
if collapsed{
splitV.subviews[0].setFrameSize(NSSize(width: 0, height: view.frame.height))
}else{
splitV.subviews[0].setFrameSize(NSSize(width: 300, height: view.frame.height))
}
splitV.adjustSubviews()
}

关于macos - 隐藏 subview 期间 NSSplitView 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61821479/

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