У меня есть пользовательский <NSOutlineViewDataSource>
, для которого я бы NSOutlineView
обновил свойство selectionIndexPaths
.Я не могу заставить bind:toObject:withKeyPath:options:
правильно связываться.По сути, мне нужно, чтобы мой источник данных знал, какой элемент выбран.
Когда я связываюсь с selectionIndexes
(объявленным NSTableView) или selectionIndexPaths
(объявленнымNSOutlineView), что в документации указано, что я должен быть в состоянии (если по какой-то причине это доступно только в IB), я получаю исключение во время выполнения, что схематическое представление не является "совместимым с кодированием значения ключа" ни для одного из этих ключей.
Когда я связываюсь с selectedRowIndexes
(запасной вариант, поскольку мне нужно было бы затем взять эту информацию и перепроектировать ее, чтобы выяснить, какая пара родитель / потомок выбрана), онаобновляет источник данных один раз, с NSIndexSet
в источнике данных, замороженном до его начального значения.Я тоже не устанавливаю это вручную.Кроме того, я даже не могу связать selectedRowIndexes
в другом направлении, поэтому источник данных может обновлять выбор вида структуры.Я получаю то же исключение «совместимое с кодированием значения ключа» в представлении структуры.
У меня есть @property
, определенный в моем классе источника данных, с резервным ivar, и я связываю его с контроллеромкласс со ссылками на источник данных и представление структуры после загрузки данных в -awakeFromNib
.