2 NSTableViews 1 ViewController. Ячейки во втором табличном представлении не добавляют данные в строки - PullRequest
0 голосов
/ 17 апреля 2019

Вторые ячейки табличного представления заполняются «Ячейкой табличного представления» хотя массив inActiveComputers заполнен.

tableView1 успешно заполнен массивом activeComputers. обе таблицы имеют источник данных, делегат и ссылки на выходы, настроенные на MainView через IB.

Я не знаю, что делать дальше!


  @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 { Содержимое в else функции tableView просто пропускается сразу. Я чувствую, что то, чего я пытаюсь достичь, не возможно с таким подходом!?

1 Ответ

0 голосов
/ 18 апреля 2019

СПАСИБО ЗА СОВЕТЫ

Мне нужно было установить выходы для ссылок для вложенного textField для второй таблицы.У меня был этот набор на моем первом столе, но забыл об этом на втором.Теперь я могу анализировать каждый массив для каждой таблицы.(См. Рисунок ниже)

Вид ячейки таблицы: ссылки на выходы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...