即使填充了inActive Computers数组,第二个表视图单元格也会填充“Table View Cell”。
tableView1已成功填充activeComputers数组。两个表都有通过IB设置为MainView的数据源,委托和引用插座。
我对接下来的尝试感到茫然!
@IBOutlet weak var tableView1: NSTableView!
@IBOutlet weak var tableView2: NSTableView!
func numberOfRows(in tableView: NSTableView) -> Int {
if(tableView == self.tableView1){
return activeComputers.count
}
else if(tableView == self.tableView2){
return inActiveComputers.count
}
return 0
}
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
var result = NSTableCellView()
if(tableView == self.tableView1)
{
result = tableView.makeView(withIdentifier: (tableColumn?.identifier)!, owner: self) as! NSTableCellView
result.textField?.stringValue = activeComputers[row][(tableColumn?.identifier.rawValue)!]!
return result
}
else if(tableView == self.tableView2)
{
result = tableView.makeView(withIdentifier: (tableColumn?.identifier)!, owner: self) as! NSTableCellView
result.textField?.stringValue = inActiveComputers[row][(tableColumn?.identifier.rawValue)!]!
return result
}
return nil
}
我也试过这个......
func numberOfRows(in tableView: NSTableView) -> Int {
if tableView == tableView1 {
return activeComputers.count
} else { return deadComputers.count}
}
func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
var result = NSTableCellView()
result = tableView.makeView(withIdentifier: (tableColumn?.identifier)!, owner: self) as! NSTableCellView
if tableView == tableView1 {
result.textField?.stringValue = activeComputers[row][(tableColumn?.identifier.rawValue)!]!
} else {
result.textField?.stringValue = deadComputers[row][(tableColumn?.identifier.rawValue)!]!
}
return result
}
我在} else {
上放了一个断点tableView函数中else中的内容刚刚被跳过。我觉得这种方法无法实现我想要实现的目标!?
感谢提示
我需要为第二个表的嵌套textField设置Referencing Outlets。我把这个放在我的第一张桌子上,但在第二张桌子上忘了它。我现在能够将每个数组解析为每个表。 (见下图)