【发布时间】:2019-04-17 14:04:57
【问题描述】:
第二个表格视图单元格正在填充“表格视图单元格” 即使填充了 inActiveComputers 数组。
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 中的内容会被直接跳过。我觉得这种方法无法实现我想要实现的目标!?
【问题讨论】:
-
你设置断点和检查值了吗?
-
您是否将第二个表格视图委托设置为控制器?
-
能否请您检查
func numberOfRows(in tableView: NSTableView) -> Int方法中的返回编号并告诉我结论,“在条件中放置打印方法或放置前点进行测试” -
我在
result.textField?.stringValue = activeComputers[row][(tableColumn?.identifier.rawValue)!]!上设置了一个断点,我注意到它进入了activeComputers 数组,而result.textField?.stringValue = inActiveComputers[row][(tableColumn?.identifier.rawValue)!]!从未访问过inActiveComputers 数组... -
mohsen,返回的数字好像还可以。
标签: swift nstableview