У меня есть NSTableView, который я хочу заполнить 20 ячейками, каждый из которых скажет «Test». Я свободно владею UITableView, но не так много с NSTableViews, поэтому я отправился на поиски онлайн, чтобы понять это. О, как это смутило меня! Я понимаю, что мне нужно использовать функцию numberOfRowsInTableView
, но как установить текст ячейки? Каждый источник, который я нахожу, все делает по-другому. Например, this сайт использует:Настройка текста ячейки NSTableView
func tableView(tableView: NSTableView!, viewForTableColumn tableColumn: NSTableColumn!, row: Int) -> NSView! {
// 1
var cellView: NSTableCellView = tableView.makeViewWithIdentifier(tableColumn.identifier, owner: self) as NSTableCellView
// 2
if tableColumn.identifier == "BugColumn" {
// 3
let bugDoc = self.bugs[row]
cellView.imageView!.image = bugDoc.thumbImage
cellView.textField!.stringValue = bugDoc.data.title
return cellView
}
return cellView
}
Я попробовал это, но я получил сообщение об ошибке - код найден ноль, а разворачивание необязательный. Тогда я попробовал то, что я нашел here:
func tableView(tableView: NSTableView, dataCellForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSCell? {
if tableColumn == nil { return nil }
if tableColumn!.identifier != "right" { return nil }
let cell = NSPopUpButtonCell()
cell.bordered = false
cell.menu!.addItemWithTitle("one", action: nil, keyEquivalent: "")
cell.menu!.addItemWithTitle("two", action: nil, keyEquivalent: "")
cell.menu!.addItemWithTitle("three", action: nil, keyEquivalent: "")
cell.selectItemAtIndex(1) // <--- obviously ignored ?!
return cell
}
Так что мой вопрос, как я могу установить текст ячейки? Как два примера, которые я вставил выше, отличаются тем, что они делают? Пожалуйста, сделайте некоторое представление об этом - потому что я уверен, что не могу!
-Спасибо, запутанном CodeIt
P.S. Я просмотрел несколько других источников, кроме двух названных мной. Я просто запутался ..
Edit: Найденный ноль, а разворачивание Факультативной ошибки я упомянул в первом примере находится на этой линии:
var cellView: NSTableCellView = tableView.makeViewWithIdentifier(tableColumn.identifier, owner: self) as NSTableCellView
, который по желанию не найден в процессе развертывания? – sasquatch
Я получаю ошибку в var cellView: NSTableCellView = tableView.makeViewWithIdentifier (tableColumn.identifier, owner: self) как NSTableCellView. – CodeIt
Вы уверены, что существует «tableColumn.identifier»? – sasquatch