A NSTableView
имеет кратные NSCell
s (косвенно через NSTableColumn
). NSCell следует за шаблоном дизайна Flyweight; они куки-резаки. В столбце есть одна ячейка, и ее просят рисовать для каждой строки. «Вот значение, нарисуйте его на первой строке, вот значение для второй строки и т. Д.» Это в отличие от табличных представлений, основанных на представлении, которые имеют экземпляр представления на ячейку.Почему NSPopUpButtonCell отображается правильно, когда только setObjectValue: nil вызывается?
Я подклассифицировал NSPopUpButtonCell и для каждого метода setXxxValue:
, я вызываю NSLog();
и пересылаю сообщение суперклассу. Единственный метод, который вызывается (например, при добавлении новых строк или в противном случае обновлении таблицы) - setObjectValue:
. Ожидается, что от documentation ... но null
это единственное, что передается! Он должен быть передан NSNumber с выбранным индексом элемента.
Моя таблица рисует отлично. Я просто пытаюсь понять это, потому что я хочу расширить/изменить поведение ячейки (очевидно, так как я бы не нуждался в подклассе в противном случае).
Вопрос: Как это возможно? Как установить NSPopUpButtonCell на значение, чтобы нарисовать правильное значение для каждой строки. Даже учитывая привязки, это NSTableColumn делает тяжелый подъем, нет? Что мне не хватает?
То же самое: пользовательский подкласс NSPopUpButtonCell, где мне нужно изменить записи в меню, 'setObjectValue:' - это только каждый вызов с нулем. Какие-нибудь дополнительные сведения по этой проблеме? – Jay