Пользовательский NSTableHeaderCell аварийно завершает работу при изменении размера таблицы.

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

Я свел проблему к наличию опции.

      class MyTableHeaderCell: NSTableHeaderCell {
    var myFont: NSFont?
}

Я создаюMyTableHeaderCellдля каждого столбца таблицы, например,

              for (index, tc) in tableView.tableColumns.enumerated() {
            let v = MyTableHeaderCell(textCell:  "Title")
            v.myFont = NSFont.systemFont(ofSize: 14)
            tc.headerCell = v
        }

Вероятно, это связано с созданием и уничтожением ячеек табличного представления, но я в растерянности. Если я просто используюfontполеNSTableHeaderCell, шрифт возвращается к значению по умолчанию после изменения размера представления таблицы, а значит, и поля.

Когда размер таблицы изменяется, оказывается, что значениеmyFontпопадает в мусор. Поигравшись с этим, приложение также вылетает, даже не рисуя табличное представление, если я пытаюсь сохранить пользовательскийNSColorобъект вместоNSFont.

Есть идеи?

0 ответов

Другие вопросы по тегам