gpt4 book ai didi

Swift:无法将 NSTableHeaderCell 添加到 NSTableView

转载 作者:行者123 更新时间:2023-11-30 10:19:48 26 4
gpt4 key购买 nike

所以我正在以编程方式绘制 NSTableView,但是,我无法绘制标题。有什么想法吗?

let tableContainer: NSScrollView = NSScrollView(frame: NSMakeRect(20, 50, 380, 200))
let tableView: NSTableView = NSTableView(frame: NSMakeRect(0, 0, 364, 200))
let tableViewHeader: NSTableHeaderView = NSTableHeaderView(frame: NSMakeRect(0, 0, 364, 20))

let header1: NSTableHeaderCell = NSTableHeaderCell(textCell: "H1")
let header2: NSTableHeaderCell = NSTableHeaderCell(textCell: "H2")

let col1: NSTableColumn = NSTableColumn(identifier: "col1")
let col2: NSTableColumn = NSTableColumn(identifier: "col2")
col1.width = 200
col2.width = 200
col1.headerCell = header1

tableView.headerView = tableViewHeader
tableView.addTableColumn(col1)
tableView.addTableColumn(col2)

tableView.setDelegate(self)
tableView.setDataSource(self)
tableView.reloadData()

tableContainer.addSubview(tableView)
tableContainer.hasVerticalScroller = true

self.view.addSubview(tableContainer)

最佳答案

您可以使用包含表头和内容的NSClipView,然后将NSClipView添加到NSScrollview中,就像在xib上创建tableview一样。

或者不需要添加NSClipView。重点是addSubview不仅有tableview还有tableheaderview。

let tableScrollView = NSScrollView(frame: NSMakeRect(0, 0, 300, 430))
let tableHeaderView: NSTableHeaderView = NSTableHeaderView(frame: NSMakeRect(0, 0, 300, 17))
let tableView = NSTableView(frame: NSMakeRect(0, 0, 300, 430))

self.col1.headerCell = header1
self.col2.headerCell = header2
self.col1.width = 130
self.col2.width = 200

self.tableView.headerView = tableHeaderView
self.tableView.allowsMultipleSelection = true
self.tableView.usesAlternatingRowBackgroundColors = true

self.tableView.addTableColumn(col1)
self.tableView.addTableColumn(col2)

self.tableView.focusRingType = NSFocusRingType.None
self.tableView.autoresizesSubviews = true
self.tableView.setDelegate(self)
self.tableView.setDataSource(self)
self.tableView.reloadData()

self.tableScrollView.addSubview(tableView)
self.tableScrollView.addSubview(tableHeaderView)

self.tableScrollView.documentView = tableView
self.tableScrollView.hasVerticalScroller = true
self.tableScrollView.borderType = NSBorderType.BezelBorder


self.view.addSubview(tableScrollView)

关于Swift:无法将 NSTableHeaderCell 添加到 NSTableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27674811/

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