[macOS] テーブルビューを使ってみる。(1)では、Cell Basedでやったんだが、View Basedでやってみる。
[macOS] テーブルビューを使ってみる。(1)と同じようにやっていく。
違うところは、
ViewControllerクラスにNSTableViewDataSourceプロトコルとNSTableViewDelegateプロトコルを追加する。
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any?
の代わりに
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView?
を実装する。
// 表示するデータをセットしたViewを返す。
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
let cell = tableView.make(withIdentifier: (tableColumn?.identifier)!, owner: self) as! NSTableCellView
if let tcol = tableColumn {
if(tcol.identifier == "Name") {
cell.textField?.stringValue = datas[row].name
} else if(tcol.identifier == "Age") {
cell.textField?.stringValue = "\(datas[row].age)"
}
}
return cell
}
TableViewのContent ModeをView Basedにする。
TableViewのdelegateもView Controllerに接続する。
こんなところだ。
コメント