addChild и т. д. с использованием NSTreeController и NSTreeNode (снежный барс) - PullRequest
1 голос
/ 31 мая 2010

У меня есть установка с объектом (OTNodeDatum) (OT для OutlineTest), который будет представлен объектом в NSTreeNode. NSTreeNode - это класс, показанный на странице атрибутов для NSTreeController.

У меня есть приложение на основе документов, без основных данных. При инициализации MyDocument я настраивал содержимое с помощью NSMutableArray, содержащего один элемент, NSTreeNode с представленным объектом, который содержит одно свойство (да, имя).

Кнопка добавления, кнопка Добавить дочерний элемент, кнопка Удалить, подключенная через конструктор интерфейса к действию добавления NSTreeController и т. Д.

Работает до определенного момента.

Когда я делаю добавление, я получаю новую пустую строку, которую я могу редактировать, но вставленный текст исчезает, когда я покидаю ячейку.

Когда я делаю удаление, вещи удаляются.

Когда я добавляю child, ничего не происходит.

Я думаю, что мне нужно создать подкласс NSTreeNode или NSTreeController, чтобы получить правильное поведение с точки зрения добавления потомков и добавления нового представляемого объекта в дополнение к добавлению нового узла дерева.

Это на правильном пути? Если бы я создал подкласс NSTreeController, я бы просто переопределил add, addChild, чтобы все происходило правильно? И что я могу испортить? Кажется, я не могу найти никаких указаний по этому вопросу, хотя я долго искал.

Спасибо.

Джон V

1 Ответ

2 голосов
/ 01 июня 2010

Похоже, что правильный способ сделать что-то или, по крайней мере, способ - это использовать

-(void)insertObject:(id)object atArrangedOjectIndexPath:(int)index;

Сначала создайте representedObject, создайте новый NSTreeNode с этим представленным объектом, затем вставьте его. Больше работы, чем простое подключение кнопки добавления к древовидному контроллеру, но (надеюсь) преимущества использования NSTreeNode компенсируют это.

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