gpt4 book ai didi

swift - 在没有 nib 的情况下使用 NSTableView 创建 NSScrollView——缺少对 TableView 的约束

转载 作者:行者123 更新时间:2023-11-28 14:21:14 27 4
gpt4 key购买 nike

我正在尝试构建一个以 NSTableView 作为内容的 NSScrollView,但我收到一条错误消息,说我缺少 Table 上的约束,而且我不确定我缺少的是什么。我正在使用 SnapKit 进行布局,错误消息是 Detected missing constraints for <NSTableView: 0x10100aaf0>. It cannot be placed because there are not enough constraints to fully define the size and origin. .

我的 ViewController 代码是:

class MainViewController: NSViewController {

let table: NSTableView = {
let t = NSTableView(frame: .zero)
t.headerView?.isHidden = false
t.selectionHighlightStyle = .regular
t.translatesAutoresizingMaskIntoConstraints = false
t.autoresizingMask = [.height, .width]
t.usesAlternatingRowBackgroundColors = true
let col1 = NSTableColumn(identifier: NSUserInterfaceItemIdentifier("Name"))
col1.headerCell = NSTableHeaderCell(textCell: "Name")
t.addTableColumn(col1)
return t
}()

required init() {
super.init(nibName: nil, bundle: nil)
}

required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

override func loadView() {
view = NSView(frame: .zero)

let scrollView = NSScrollView(frame: .zero)
scrollView.hasVerticalScroller = true
scrollView.autohidesScrollers = false
scrollView.documentView = table

view.addSubview(scrollView)

/// Layout
scrollView.snp.makeConstraints { make in
make.edges.equalToSuperview().inset(Padding.large)
}
}

大多数在线指南都适合使用 Nib,但我正在尝试以编程方式进行。任何人都知道它是如何完成的?我正在使用 XCode 9.2 和 Swift 4。谢谢。

最佳答案

我的猜测是您忘记为 tableView 本身添加约束,以描述它应该如何在封闭的 ScrollView 中布局。

您可以在 DETECTED_MISSING_CONSTRAINTS 上设置一个符号断点Here is a video这显示了如何设置符号断点,以防您从未遇到过它们。

它应该让您更深入地了解到底出了什么问题。约束是一件棘手的事情,如果不看全貌可能很难推理。

关于swift - 在没有 nib 的情况下使用 NSTableView 创建 NSScrollView——缺少对 TableView 的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51921372/

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