为什么NSTableView没有重新加载?

时间:2015-12-19 13:29:16

标签: swift macos cocoa nstableview

我仍然很擅长使用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()
}
}

0 个答案:

没有答案