MacOS: tableView: viewForTableColumn: row: перестает вызываться после определенного количества строк - PullRequest
0 голосов
/ 09 июля 2019

У меня есть NSTableView внутри NSWindow, который находится внутри моего файла XIB.Xib в Интерфейсном Разработчике может быть просмотрен здесь .Я использую табличное представление на основе представления.

Моя проблема заключается в том, что текстовые поля ячеек в tableView заполняются только до высоты таблицы.С этого момента tableView:viewForTableColumn:row: перестает вызываться, и у меня остается правильное количество строк, но большинство из них без текста.Иллюстрация здесь .

Методы dataSource и delegate, которые я реализовал, приведены ниже:

    // MARK: - Table View Data Source
    func numberOfRows(in tableView: NSTableView) -> Int {
        return builds.count
    }

    func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
        guard let cellView = tableView.makeView(withIdentifier: tableColumn!.identifier, owner: nil) as? NSTableCellView else {
            return nil
        }
        let formatter = DateFormatter()
        formatter.dateFormat = "MMM d, yyyy"
        cellView.textField?.stringValue = formatter.string(from: builds[row].buildDate)
        return cellView
    }

Я застрял с этим около дняи не добились большого прогресса.Буду признателен за любую помощь

1 Ответ

0 голосов
/ 09 июля 2019

Сладкий Иисус, я понял это.Мой румян NSWindowController сразу деинициализировался, поэтому ячейки показывали видимую часть таблицы, а затем ничего!Сохранение ссылки на контроллер решило эту проблему.

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