Я возвращаюсь к разработке Cocoa на Mac после длительного пребывания в iPhone. Мой предыдущий опыт работы с Cocoa на Mac - это просто маленькие инструменты. Я ищу что-то серьезное.Архитектура приложения какао на Mac OS X
Рассматривая современное приложение для какао, такое как iPhoto (или Mail or Things or ....), многие приложения используют подход Single-Window, основанный на Source-List. Я пытаюсь оборачивать голову так, как только могу, потому что это, кажется, дает хороший опыт. Однако у меня небольшие проблемы. Вот как я думаю, что это должно выглядеть, но мне интересно, как это делают другие, и что на самом деле лучший способ:
Начальная точка приложения является объектом AppDelegate, который после запуска, создает окно [Controller?] От наконечника вместе с настройкой его данных (от, например, CoreData)
WindowController загружает окно, в котором по существу имеется только NSSplitView.
Левая сторона splitview имеет NSTableView или NSOutlineView, который имеет стиль SourceList.
Правая сторона имеет основное содержимое приложения, в зависимости от выбранного элемента представления таблицы.
я бы предположить, где-то (где?) Есть NSViewControllers управление каждой из различных точек зрения, которые появятся в правой части (думаю, как Iphoto имеет все фотографии, события, лица, места и т.д., и я полагаю, они все могли появиться в разных норах ... это правильно?).
Эти контроллеры представлений, вероятно, связаны с исходным списком слева. Как это работает (исходный список поддерживается NSArrayController NSViewControllers, возможно?).
Во всяком случае, это мои мысли, я полностью вне базы или ...? Я просмотрел веб-страницы, нашел этот пост here, и я посмотрел на какой-то исходный код Apple, но я не могу обернуться вокруг него. Любые рекомендации приветствуются.
Я, конечно, много думал, и я думаю, что это хорошо работает для моей ситуации. Я думаю, что каждый другой вид был бы достаточно разным, чтобы оправдать свой собственный наконечник, но опять же я не уверен. Когда я работал с iPhone, я редко пользовался интерфейсом InterfaceBuilder, однако, когда Bindings были настолько хорошо интегрированы в него, я думаю, что пришло время использовать его больше. Я также читал статьи Кэти, но это еще один буксир в другом направлении, отсюда и моя путаница в том, как все должно работать. – jbrennan
Реальный вопрос заключается не в том, насколько различны представления, а в том, что вы используете для них - какие объекты модели вы будете вкладывать в них. Если в двух представлениях видны разные вещи, они должны быть разными, каждый со своим собственным наконечником. –
Правильно, они будут разными перьями, потому что они показывают разные типы вещей. Как будет работать переключение ножей? Когда я выбираю другую строку в моем Sourcelist, как это запускает новый загружаемый nib? (Кроме того, следует ли загружать новый ViewController или просто менять вид с правой стороны?) – jbrennan