Трудно сказать точно, что вы описываете, основываясь на вашем описании, но давайте посмотрим, понимаю ли я вас. Вы хотите добавить «копию» вашей сборки пользовательского вида в разделенный вид каждый раз, когда нажимаете «+», верно?
Абсолютно лучший способ сделать это - поместить сборку пользовательского представления, которая будет скопирована («прототип»), в свою собственную XIB. Для каждого объекта, который вы хотите представить, вы создадите новую копию из xib и передадите ее какому-либо владельцу, а затем добавите ее в какое-либо родительское представление (разделенное представление в вашем случае ... странное для неограниченного количества просмотров, но я не хватает деталей, чтобы сказать иначе).
Итак. В современном мире Какао такая сборка представления, вероятно, должна иметь свой собственный контроллер представления ( NSViewController ). Это упростит вам задачу, поскольку владелец файла xib будет экземпляром вашего MyCustomViewController, чье -view связано с главным представлением контейнера в xib (ваше пользовательское представление со всеми его подпредставлениями), а для которого -representedObject установлена любая модель объект, который представляет ваш пользовательский вид. Затем ваше приложение будет поддерживать список (возможно, массив или словарь) всех контроллеров представления для объектов модели. См. этот SO вопрос / ответ , чтобы узнать, как загружать файлы из nibs / xibs.
Это в основном то, как NSCollectionView работает (хотя все представления должны быть одинакового размера - может не работать у вас). В этом случае представление коллекции соответствует вашему разделенному представлению; NSCollectionViewItem соответствует вашему MyCustomViewController (и фактически на 10.5 и выше NSCollectionViewItem является подклассом NSViewController); Ваш пользовательский вид - это основной вид элемента коллекции. Для каждого объекта модели в своей коллекции он создает экземпляр NSCollectionViewItem и загружает прототип представления из xib (в идеале, но это необязательно) и использует его для установки представления элемента, а затем устанавливает представленный объект элемента (объект модели) .
Надеюсь, это немного прояснит ситуацию. Вам нужно кое-что почитать, чтобы понять достаточно гайки и болты, но если вы все еще застряли, вы можете попробовать отредактировать свой вопрос, чтобы уточнить или открыть новый, более конкретный вопрос.