У меня есть табличный вид, который имеет NSSegmentedCell для его самого правого столбца.NSTableView + NSSegmentedControl + NSSegmentSwitchTrackingSelectAny
NSSegmentedControls, из которого вытаскиваются ячейки, использует «любой» режим отслеживания (ака: множественный выбор), и сегменты выбираются на основе битового поля с возможными значениями: 1, 2 и 4. Значение 1 означает A | b | c. 2 является | B | c. 4 является | b | C. 3 является A | B | c и т. Д.
Это битовое поле возвращается таблицей источников данныхViewView: objectValueForTableColumn: строка: метод и ячейка возвращается в таблице делегата: dataCellForTableColumn: row: method.
Установка ячеек отдельно в таблицеView: dataCellForTableColumn: строка: ничего не делает, поскольку табличное представление вызывает tableView: objectValueForTableColumn: строка: сразу после этого, чтобы получить значение для этого столбца, а затем использует его для установки " значение "сегментированного элемента управления/ячейки.
Проблема в этом пункте.
Похоже, что битовое поле неверно интерпретируется как индексное значение сегмента: 0 для A, 1 для B и 2 для C (и -1 для выбора) .... которое предполагает единственный выбор.
Как настроить эту настройку так, чтобы в представлении таблицы было правильно установлено несколько сегментов? (например: битовое поле 3 = A | B | c)