2016-11-17 79 views
0

我想從數組中捕獲信息並將其顯示到我的NSTableView中。我不確定我需要做什麼(我對Swift和編程一般都很陌生)。獲取數組對象到NSTableView中

我的表視圖看起來是這樣的:

enter image description here

我想從我的數組中獲取價值的姓名和名稱表中與NSTableView的顯示。我找到了this tutorial on Ray Wenderlich,但代碼非常過時,我不想在我的項目中使用舊的東西,這可能不適用於較新的操作系統版本。

看來我需要一個[NSTableViewDataSource numberOfRows][3]viewFor

有關如何做到這一點的任何示例 - 也許有人在幾周前用Swift 3做了這個例子? :d

在數組中的信息將通過以下產生:

var devices = [Device]() 
    let quantityDevices = quantityData.intValue 

    for i in 0...quantityDevices-1 { 

     let newDevice = Device() 
     print("created new device") 

     newDevice.name = titleData.stringValue + "-\(i)" 
     devices.append(newDevice) 
    } 

    print("now we have \(devices.count) devices in our array") 


} 

回答

0

你需要的代碼的重要的部分是數據源委託功能:

extension ViewController : NSTableViewDataSource { 
    func numberOfRows(in tableView: NSTableView) -> Int { 
    return devices.count 
    } 

    func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? { 

    // 1 - get the device for this row 
    guard let device = devices[row] else { 
     return nil 
    } 

    // 2 - configure the cell with the device data 
    return nil 
    } 

有一個例子here on StackOverflow應該舉一個更好的例子

+0

謝謝你的發表!我正在使用OS X和NSTableView,而不是iOS/UITableView - 就是這個問題。 這方面的任何信息? – Jakob

+0

對不起,我沒有注意到標籤! Err,我會快速瀏覽一下,我認爲它非常相似 – Scriptable

+0

沒問題,所有設置。我有時間! :D – Jakob