&tag(Cocoa/テーブルビュー);
class Document: NSDocument, NSTableViewDataSource {
@IBOutlet weak var tableView: NSTableView!
var employees:[Employee] = []
override init() {
super.init()
let employee1 = Employee()
employee1.name = "従業員1"
employee1.age = 18
let employee2 = Employee()
employee2.name = "従業員2"
employee2.age = 28
employees.append(employee1)
employees.append(employee2)
}
// MARK: - NSTableViewDataSource
func numberOfRows(in tableView: NSTableView) -> Int {
return employees.count
}
func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
let employee = employees[row]
var result:Any? = nil
if tableColumn?.identifier == "name" {
result = employee.name
} else {
result = String(employee.age)
}
return result
}
@IBAction func addClicked(_ sender: NSButton) {
let newEmployee = Employee()
employees.append(newEmployee)
tableView.reloadData()
}
@IBAction func deleteClicked(_ sender: NSButton) {
let index = tableView.selectedRow
Swift.print("index=\(index)")
if index >= 0 {
employees.remove(at: index)
}
tableView.reloadData()
}
class Document: NSDocument {
var employees:[Employee] = []
override init() {
super.init()
// Add your subclass-specific initialization here.
let employee1 = Employee()
employee1.name = "従業員1"
employee1.age = 18
let employee2 = Employee()
employee2.name = "従業員2"
employee2.age = 28
employees.append(employee1)
employees.append(employee2) }
override class func autosavesInPlace() -> Bool {
return true
}
}
以下PENDING
[tableView setColumnAutoresizingStyle:NSTableViewUniformColumnAutoresizingStyle]; [tableColumn setResizingMask:NSTableColumnAutoresizingMask]; //AND [tableView sizeLastColumnToFit];