2016-12-10 4 views
0

をレンダリングされていないコードです:テーブルビューは、ここでデータ

import Cocoa 

class ViewController: NSViewController, NSTableViewDataSource, NSTableViewDelegate { 

    let data = [ 
     [1, 2, 3, 4], 
     [5, 6, 7, 8], 
     [1, 2, 3, 4], 
     [5, 6, 7, 8], 
    ] 

    @IBOutlet weak var tbl: NSTableView! 
    override func viewDidLoad() { 
     print("init") 
     super.viewDidLoad() 
     tbl.delegate = self 
     tbl.dataSource = self 
     tbl.target = self 
     tbl.reloadData() 
     print("end init") 
    } 

    override var representedObject: Any? { 
     didSet { 
      tbl.reloadData() 
     } 
    } 

    func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? { 
     if let cell = tbl.make(withIdentifier: tableColumn!.identifier, owner: nil) as? NSTableCellView { 
      if let col = Int(tableColumn!.identifier) { 
       print("col id: ", tableColumn!.identifier) 
       print(row, col) 
       cell.textField?.stringValue = String(data[row][col]) 
       return cell 
      } 
     } 
     return nil 
    } 

    func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? { 
     if let col = tableColumn { 
      if let colIndex = Int(col.identifier) { 
       print(data[row][colIndex]) 
       return data[row][colIndex] as Any 
      } 
     } 
     return nil 
    } 

    func numberOfRows(in tableView: NSTableView) -> Int { 
     return data.count 
    } 
} 

私は、テーブルビューに行列をロードしようとしていますが、アプリが実行されるとき、それは空白です。何がここで間違っていた? デバッグ情報から判断すると、関数tableViewは呼び出されませんでした。

+0

これは、テーブルを作成するために使用している配列を含む変数を説明することなく、貧弱なトピックです。いくつの列がありますか? - わかりません。 –

+0

'voices'は、表を移入するために使用されるデータです。 – qed

+0

これは、tableViewのobjectValueForメソッドの記述方法ではありません。 –

答えて

2

tableViewのデリゲートを設定していますが、tableViewのデータソースの設定場所はわかりません。

関連する問題