I'm trying to diplay list of static cell views in a NSTableView.
What I've done:
- Added identifier to NSTableColumn (
Note) - Added NSTableCellView from Object Library with identifier
idNode - Left pre-created Text Cell inside NSTableColumn (
Note) as I can't delete it
Table view content mode — View Based.
Here's my code:
extension SidebarController: NSTableViewDataSource {
func numberOfRows(in tableView: NSTableView) -> Int {
return 1;
}
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
let cellIdentifier = NSUserInterfaceItemIdentifier(rawValue: "idNote")
guard let cellView = tableView.makeView(withIdentifier: cellIdentifier, owner: self) as? NSTableCellView else {
NSLog("Cant create cell view for row \(row)!")
return nil
}
cellView.textField!.stringValue = "Hello, world!"
return cellView
}
}
tableView is:
- called
- no errors or short exits happens
- a valid
cellViewis returned (at least it seems so)
But I'm getting:
What I'm doing wrong?
FYI, if I delete identifier for NSTableCellView, I'm just getting Table Cell View placeholder.


The problem was I was using wrong overloaded function. The proper was:
So, note the difference:
The reason Xcode didn't allow me to use it — there was no
NSTableViewDelegatein extension definition.This function confirms to NSTableViewDelegate. Only NSTableViewDataSource declaration is insufficient.
So, to catch up: