##最初に
StoryBoard及び、コードの両方から列の追加、削除する方法です
最低限の使い方は、他の方がいくらでも情報載せていただいているのでそちらをご覧ください
##Storyboard
TableViewを選択し、Columnsを変更
引き伸ばしてから追加すると見えない位置に生成されるので
追加したカラムの一つ上のカラムのWidthを狭める
##コード
見て貰えば早いです。
ViewController.swift
//
// ViewController.swift
// TestTableView
//
import Cocoa
class ViewController: NSViewController, NSTableViewDelegate, NSTableViewDataSource {
@IBOutlet weak var tableView: NSTableView!
let columnName: [String] = ["column0", "column1", "column2"]
let data: [[String]] = [
["TEST00", "TEST01", "TEST02"],
["TEST10", "TEST11", "TEST12"]
]
override func viewDidLoad() {
super.viewDidLoad()
// 一旦、全部削っちゃう
let tableColumns = tableView.tableColumns as! [NSTableColumn]
for tc: NSTableColumn in tableColumns {
tableView.removeTableColumn(tc)
}
for _id in columnName {
var tc: NSTableColumn = NSTableColumn(identifier: _id)
tc.title = _id
tableView.addTableColumn(tc)
}
}
override var representedObject: AnyObject? {
didSet {
}
}
func numberOfRowsInTableView(tableView: NSTableView) -> Int {
return data.count
}
func tableView(tableView: NSTableView, objectValueForTableColumn tableColumn: NSTableColumn?, row: Int) -> AnyObject? {
if let tc: NSTableColumn = tableColumn {
return data[row][find(columnName, tc.identifier)!]
}
return ""
}
}
このコードの注意点として、StoryBoardから作って、IBOutletで取得して、デリゲートとデータソースはUtilitiesから設定しています。
また、セルにコードから入力する際は、Content ModeをView Basedから
##おわりに
コードから列の追加、削除する方法がなかなか見つからなかったので投稿しました。
Swiftで書きましたが、Objective-Cでもできます。
それではまたどこかで