После поиска через SO и в Интернете я изо всех сил пытаюсь понять концепцию, которая, как я думал, будет относительно простой. По сути, у меня есть таблица в приложении OS X Swift с несколькими столбцами, и в настоящее время она заполняет данные. Я пытаюсь понять, как я могу установить цвет фона каждой «строки» (в идеале с чередующимися цветами, но я начну с одного цвета). Мой файл MasterViewController похож на этот;Настройка цвета фона NSTableCellView в Swift
import Cocoa
class MasterViewController: NSViewController {
var minions = [Minion]()
func setupSampleMinion() {
minions = Minion.fetchMinionData()
}
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}
}
// MARK: - NSTableViewDataSource extension MasterViewController: NSTableViewDataSource {
func numberOfRowsInTableView(aTableView: NSTableView) -> Int {
return self.minions.count
}
func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? {
// 1
var cellView: NSTableCellView = tableView.makeViewWithIdentifier(tableColumn!.identifier, owner: self) as! NSTableCellView
let minion = self.minions[row]
// 2
if tableColumn!.identifier == "MyColumn" {
// 3
cellView.imageView!.image = NSImage(named: "minion.name!")
cellView.textField!.stringValue = minion.name!
return cellView
}
return cellView
}
}
func tableView(tableView: NSTableView, rowViewForRow row: Int) -> NSTableRowView? {
let myCustomView = MyRowView()
return myCustomView
}
class MyRowView: NSTableRowView {
override func drawRect(dirtyRect: NSRect) {
super.drawRect(dirtyRect)
self.backgroundColor = NSColor(red: 0.76, green: 0.82, blue: 0.92, alpha: 1)
NSRectFill(dirtyRect)
}
}
// MARK: - NSTableViewDelegate extension MasterViewController: NSTableViewDelegate {
}
Хотя я думаю, у меня есть некоторые права кодирования, это не похоже, чтобы установить цвет фона, если строка в любом случае. Любые мысли или общее руководство были бы наиболее оценены. Спасибо!
Большое спасибо, Кен! Я закончил игру с файлом до вашего ответа и более или менее решил тот же вывод. При создании файла View Controller для вызова метода makeViewWithIdentifier (_: owner:) 'сначала была разрешена общая проблема. Я играю с реализацией 'drawRect()', но теперь понимаю. Спасибо! – ZbadhabitZ