为什么我的NSTableView没有显示我给出的数据?

时间:2014-10-23 04:39:29

标签: swift nstableview

设置:

  1. 使用XCode 6.1
  2. 创建的基于Cocoa的MacOS应用程序
  3. 使用故事板
  4. 一个以NSTableView为唯一视图的ViewController
  5. 所有以Swift作为语言完成
  6. 我的ViewController代码是这样的:

    import Cocoa
    
    class ViewController: NSViewController, NSTableViewDataSource {
        @IBOutlet var tableView: NSTableView!
    
        let data = [
            ["FirstName": "Debasis", "LastName": "Das"],
            ["FirstName": "Nishant", "LastName": "Singh"],
            ["FirstName": "John", "LastName": "Doe"],
            ["FirstName": "Jane", "LastName": "Doe"],
            ["FirstName": "Mary", "LastName": "Jane"]
        ]
    
        override func viewDidLoad() {
            super.viewDidLoad()
            tableView.setDataSource(self)
    
        }
    
        override var representedObject: AnyObject? {
            didSet {
            }
        }
    
        func numberOfRowsInTableView(tview: NSTableView) -> Int {
            return data.count
        }
    
        func tableView(tview: NSTableView, objectValueForTableColumn col: NSTableColumn?, row: Int) -> AnyObject? {
            return "row \(row) col \(col?.identifier)"
        }
    }
    

    从storyView插座到故事板中的NSTableView有一个连接。

    运行此应用程序时,您会得到一个包含5行的表格视图,但是每个单元格的内容都是“Table View Cell”。我试过只返回“1”,数字1,各种其他对象,但我不能让它显示我从tableView方法返回的内容。我假设AnyObject返回需要特定的东西(就像在调用者中有一个checkof实例),但是我发现的所有示例代码都返回字符串并且事情有效,所以事情都发生了变化或我的代码出错了在某种程度上,我无法弄明白。

2 个答案:

答案 0 :(得分:1)

如果您只是在进行包含表视图的视图,我建议您只使用UITableViewController。从模板中创建一个,应该更容易让它运行起来。

答案 1 :(得分:1)

我在搜索Apple Dev论坛后找到了答案:

NSOutlineView - object value is being returned, but only the placeholder title "Table View Cell" is displayed

具体而言,绑定方法很容易。