gpt4 book ai didi

swift - 将附件 View 添加到“打开/保存”对话框时布局约束错误

转载 作者:行者123 更新时间:2023-11-28 05:49:50 25 4
gpt4 key购买 nike

我试图添加一个带有复选框的简单 NSView 作为 NSOpenPanel 的附件 View ,但是当我运行我的程序时,我收到一条错误消息 “打开/保存”面板提供了一个布局约束不佳的附件 View ,导致 View [高度/宽度] 为零。 以下是我添加到 View 中的约束: constraints for NSView这是复选框的约束: constraints for checkbox

下面是创建 NSOpenPanel 的代码:

let dlgOpenSounds: NSOpenPanel = NSOpenPanel()
let optionsView = BatchAddOptionsView()
dlgOpenSounds.accessoryView = optionsView
dlgOpenSounds.accessoryView?.awakeFromNib()
let result = dlgOpenSounds.runModal()
if result == .OK {
// do stuff
}

有人知道我做错了什么吗?

最佳答案

我在代码中创建了类似的安排时遇到了同样的问题,并最终解决了。我的实现是在自定义 NSView 子类中处理的,然后我从显示面板的 View Controller 中将其添加为 NSOpenPanel 的 .accessoryView。

private func setup() {
hiddenFilesCheckbox = NSButton(checkboxWithTitle: "Show Hidden Files", target: self, action: #selector(hiddenFilesCheckboxValueChanged))
guard let checkbox = hiddenFilesCheckbox else {
os_log("Hidden files checkbox is nil")
return
}
addSubview(checkbox)
checkbox.translatesAutoresizingMaskIntoConstraints = false

checkbox.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 12).isActive = true
checkbox.topAnchor.constraint(equalTo: self.topAnchor, constant: 12).isActive = true
self.heightAnchor.constraint(greaterThanOrEqualToConstant: frame.height).isActive = true
self.widthAnchor.constraint(greaterThanOrEqualToConstant: frame.width).isActive = true
}

“hiddenFilesCheckbox”被声明为我的自定义 NSView 子类的属性。我尝试了一些其他的常量硬编码值,但这些在我的测试中效果最好。我将 openPanel 传递给子类的初始化程序,以使用其框架来设置 accessoryView 的宽度。我在此处未包含的初始化程序中使用硬编码值 40 作为高度。在使用这些约束设置附件 View 后,警告停止出现并且附件 View 按需要/预期显示。

关于swift - 将附件 View 添加到“打开/保存”对话框时布局约束错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53308071/

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