我仍然很擅长使用Swift编程,(而且从不使用Objective C)。我正在尝试做的是当我点击当前tableview中的项目时添加到NSTableView。单击时似乎添加了项目,但表格似乎没有使用数组中的新内容进行刷新。
我在过去几天尝试了各种各样的东西,让它在主线程和UI线程上运行reloadData等,但我觉得我只是在撞墙(肯定不会这么难在Java中用几分钟的时间做一些如此简单的事情...... ....
我错过了一些非常明显的东西吗? (以下代码)
class TableViewController: NSTableView, NSTableViewDataSource, NSTableViewDelegate {
var items: [String] = ["Eggs", "Milk"]
func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView? {
let result : TableCell = tableView.makeViewWithIdentifier(tableColumn!.identifier, owner: self) as! TableCell
result.itemField.stringValue = items[row]
return result
}
func numberOfRowsInTableView(tableView: NSTableView) -> Int {
return items.count
}
func tableViewSelectionDidChange(notification: NSNotification) {
let index = notification.object!.selectedRow
if (index != -1) {
NSLog("@%d", index)
items.append("Blah")
NSLog("@%d", items.count)
dispatch_async(dispatch_get_main_queue(), { () -> Void in
self.reloadData()
})
}
}
func relloadData() { //relload is not a typo
self.reloadData()
}
}